-1

我的代码是:

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 存储在 List 或 Map 中吗?如果java可以,那么如何实现

4

2 回答 2

1

以下应该可以工作,而不会丢失所有类型信息。

List<interfacebase<?>> list = new ArrayList<interfacebase<?>>();
list.add(AObj);
list.add(BObj);
于 2012-04-09T08:45:40.190 回答
0

如果你创建一个ArrayList<Object>或者HashMap<Object>你可以在里面放任何你想要的东西。
如果您有一个定义的基类/接口调用BASE,并且您想存储一些来自它的派生类的对象DERIVED,您应该更改ObjectBASE. 在这种情况下,您可以将每种类型的对象存储到您的列表/映射中,它是从 BASE 派生的,或者实现它(在接口的情况下):ArrayList<BASE>, HashMap<BASE>.

于 2012-04-09T08:38:11.503 回答