2014-01-07 47 views
0

我做了一個接口,覆蓋所有使用泛型的類,但是我需要一個實現此接口的類的附加方法。實現接口時使用額外的方法

我喜歡能夠使用聲明變量作爲接口,然後使用所述類別中的一個初始化它的動態結合。這樣我的方法可以更容易實現。

然而,它使棘手的一個。要嘗試並總結了簡單的程序,我有一個接口:

DataType<T> 
{ 
    public T getParameter(); 
    public void setParameter(T value); 
} 

和實現這種類型的類:

StringData implements DataType<String> 
IntData implements DataType<Int> 
BooleanData implemets DataType<Boolean> 
DoubleData implements DataType<Double> 

和一個我希望有更多的方法;

ArrayData implements DataType<ArrayList<DataType>> 

ArrayData類包含其他DataTypes的ArrayList。所以我需要額外的方法來添加,刪除和獲取DataType到列表中。

然而,這些方法不能使用以上時,因爲不是所有數據類型變量的動態綁定技術,所以我想知道是否有人知道所謂的辦法解決,或任何我已經錯過了。謝謝。

回答

1

正如你所說,你提出的方法是不適合的接口足夠通用,所以有添加/刪除的頂層接口方法就沒有意義。

考慮2個接口,一個有基本的數據操作和一個有列表操作。

public interface ListDataType extends DataType<List<DataType>> { 
    // list operations 
} 
+0

啊好主意,我仍然可以說: DataType array = new ArrayData()? 如果我有一個類: 類ArrayData實現ListDataType – Alex

+0

是因爲ListDataType擴展數據類型。 –

+0

啊,完美,我忘了你可以擴展接口!謝謝!! – Alex