2012-04-09 73 views
-1

我的代碼是:的java通用對象如何在數據結構存儲

interfacebase<T> 

interfaceA extends interface<A> ---> interfaceAImpl implements interfaceA 
interfaceB extends interface<B> ---> interfaceBImpl implements interfaceB 


interfaceA AObj = interfaceAImpl() 
interfaceB BObj = interfaceBImpl() 

我的問題是:Java軟件商店AObj和BOBJ在列表或地圖? 如果java可以,那麼如何實現這一點

+0

只需添加它們。 – Alexander 2012-04-09 07:17:31

+0

可能是OP有興趣在那個列表中的泛型參數 – Premraj 2012-04-09 07:18:21

回答

1

以下應該工作,而不會丟失所有類型的信息。

List<interfacebase<?>> list = new ArrayList<interfacebase<?>>(); 
list.add(AObj); 
list.add(BObj); 
+0

其實我的情況是: 還有一個方法call_Method_(T Tobj): 我需要調用像這樣---> list.get(0).call_Method_(Aobj ); 但我不能,所以我需要改變結構來設置A和B的基類? – Xiwen 2012-04-09 18:49:24

0

如果你創建一個ArrayList<Object>HashMap<Object>你可以把它們放在裏面,無論你想要什麼。
如果您有一個已定義的基類/接口,並且您想要存儲來自其派生類DERIVED的某些對象,則應將Object更改爲BASE。 在這種情況下,您可以將每種對象存儲到從BASE派生的列表/映射中,或者實現它(在接口的情況下):ArrayList<BASE>HashMap<BASE>