繁体   English   中英

通用类的数组列表

[英]An Arraylist of a Generic class

我想从列表访问通用对象,但始终会收到不兼容的Typs错误消息。

MyGenericContainer <Cursor> cursorContainer = new MyGenericContainer<Cursor>(c);
ArrayList <MyGenericContainer> arrayList = new ArrayList<MyGenericContainer>();
arrayList.add(cursorContainer);
Cursor cursor = arrayList.get(0).getValue();

通常,是否有一种方法可以将通用对象放入列表并访问每个对象(不强制转换)?

创建数组列表时,您是否缺少某些内容?

我想这样改变它,应该可以正常工作:

ArrayList <MyGenericContainer<Cursor>> arrayList = new ArrayList<MyGenericContainer<Cursor>>();

您正在设置使用原始 MyGenericContainer键入的ArrayList 因此,编译器暗示ArrayList将由Object实例的MyGenericContainer组成。

为了修复它,您需要设置MyGenericContainer类型的类型参数:

List<MyGenericContainer<Cursor>> arrayList = new ArrayList<MyGenericContainer<Cursor>>();

如果您使用的是Java7 +,则可以利用菱形( <> ),该菱形将允许您键入较不冗长的声明:

List<MyGenericContainer<Cursor>> arrayList = new ArrayList<>();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM