2012-04-09 15 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

+0

OPがそのリストのジェネリックパラメータに興味があるかもしれない – Premraj

答えて

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

0

ArrayList<Object>またはHashMap<Object>を作成する場合は、必要に応じてその中に入れることができます。
基本クラス/インターフェイスがBASEと定義されていて、そのオブジェクトから派生したオブジェクトを保存する場合は、DERIVEDという名前のObjectBASEに変更する必要があります。 この場合、すべての種類のオブジェクトをBASEから派生したリスト/マップに格納したり、インターフェイスの場合はArrayList<BASE>HashMap<BASE>に実装することができます。

関連する問題