如何初始化我的通用数组?

时间:2012-06-20 05:02:45

标签: java android generics arraylist initialization

我想要一个ArrayLists数组:

ArrayList<MyClass>[] myArray;

我想通过以下代码初始化它:

myArray = new ArrayList<MyClass>[2];

但是我收到了这个错误:

Cannot create a generic array of ArrayList<MyClass>

如何初始化它?

4 个答案:

答案 0 :(得分:4)

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

你可以这样解决:

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

这可能(确实应该)产生警告,但没有其他方法可以绕过它。老实说,你最好创建ArrayList ArrayList s:

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

后者是我推荐的。

答案 1 :(得分:0)

您可以使用

HashMap<some key,ArrayList<MyClass>> or ArrayList<ArrayList<MyClass>>

答案 2 :(得分:0)

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

ArrayList<ArrayList<MyClass>>

答案 3 :(得分:0)

这个怎么样?

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


for(int ix = 0; ix < f.length;ix++)
    f[ix] = new ArrayList<String>();