3

我想要一个 ArrayLists 数组:

ArrayList<MyClass>[] myArray;

我想通过以下代码对其进行初始化:

myArray = new ArrayList<MyClass>[2];

但我得到这个错误:

Cannot create a generic array of ArrayList<MyClass>

我怎样才能初始化它?

4

4 回答 4

4

这在 Java 中严格来说是不可能的,并且自实施以来就没有。

您可以像这样解决它:

ArrayList<MyClass>[] lists = (ArrayList<MyClass>[])new ArrayList[2];

这可能(真的,应该)产生警告,但没有其他方法可以绕过它。老实说,你最好创建一个ArrayListof ArrayLists:

ArrayList<ArrayList<MyClass>> lists = new ArrayList<ArrayList<MyClass>>(2);

后者是我推荐的。

于 2012-06-20T05:06:52.170 回答
0

您可以使用

HashMap<some key,ArrayList<MyClass>> or ArrayList<ArrayList<MyClass>>
于 2012-06-20T05:05:58.767 回答
0

由于数组本质上是静态的并且在编译时解析,所以你不能这样做,而是可以使用 ArrayList。作为

ArrayList<ArrayList<MyClass>>
于 2012-06-20T05:07:32.307 回答
0

这个怎么样?

ArrayList<String>[] f = (ArrayList<String>[]) Array.newInstance(ArrayList.class, size);


for(int ix = 0; ix < f.length;ix++)
    f[ix] = new ArrayList<String>();
于 2012-06-20T05:08:46.610 回答