2012-12-14 48 views
0

我的問題很簡單。我試圖建立一個建設者的圖表。圖表數據將由一個對象填充,具體取決於我的同事程序員創建的程序。因此,我使用了一個名爲ObjectInterface的接口來確保對象始終具有某些方法。使用界面作爲參數列表

我的問題是,如果我想要這些對象(即我不知道哪種類型的)到一個ArrayList是有可能將它們添加像這樣的:在這個例子中

ArrayList<ObjectInterface> data = new ArrayList<ObjectInterface>(); 
ObjectType Test = new ObjectType("Test"); 
data.add(test); 

的對象類型是一個實現ObjectInterface的對象

這是合法的嗎?

回答

2

是的,你的例子非常好。

此外,我認爲這是相當不錯的設計。通過@duffymo提出的一個進一步的改進是在左側使用List

List<ObjectInterface> data = new ArrayList<ObjectInterface>(); 

這樣data在抽象列表界面方面的聲明,而不是一個具體的列表實現的條款。

+0

我更喜歡LHS上的List ,但那就是我。 – duffymo

+0

@NPE謝謝你的回答:) –

+0

@duffymo:好的,謝謝。 – NPE

2

是的,這是合法的。您可以將ObjectInterface的子類型(例如ObjectType)添加到ArrayList<ObjectInterface>

+0

感謝你的迴應 –

3

如果ObjectTypeObjectInterface的子類型(或實施),則它是合法的。你沒有Java編譯器嗎?它會回答你所有的「這是合法的」類型的問題;)

+0

謝謝你的迴應:) –