错误:使用我自己的对象创建通用数组

时间:2014-10-21 00:47:28

标签: java arrays

我想创建一个包含MyObject链接列表的列表。

LinkedList<MyObject>[] list  = new LinkedList<MyObject>[n];

但它显示:

Main.java:19: error: generic array creation LinkedList<MyObject>[] list  = new LinkedList<MyObject>[n];

如何创建此类列表?

2 个答案:

答案 0 :(得分:1)

您为什么要创建LinkedLists数组?毕竟它已经是一个List。

将您的代码更改为

List <MyObject> list = new LinkedList<MyObject>();

如果您想要这些LinkedLists的集合,那么我建议您创建一个新的List

List <LinkedList<MyObject>> theBigList = new ArrayList <> ();

然后您可以添加到此列表

theBigList.add (list); 

答案 1 :(得分:1)

列表列表如下:

List<List<MyObject>> listList = new LinkedList<>();
List<MyObject> list1 = new LinkedList<>();
List<MyObject> list2 = new LinkedList<>();
listList.add(list1);
listList.add(list2);
List<MyObject> list3 = listList.get(0);

一个LinkedLists数组看起来像:

@SuppressWarnings("unchecked")
List<MyObject>[] listArray = new LinkedList[n];
List<MyObject> list1 = new LinkedList<>();
List<MyObject> list2 = new LinkedList<>();
listArray[0] = list1;
listArray[1] = list2;
List<MyObject> list3 = listArray[0];

两者都假定钻石操作符(<>)是Java 7的快捷方式,但可以替换为完整类型(第二种情况为新LinkedList<MyObject>,第一种情况为LinkedList<List<MyObject>> )。

并且数组无法实例化泛型类型(由于各种奇怪的内部结构)。请参阅示例http://bugs.java.com/bugdatabase/view_bug.do?bug_id=5105887