Java 通用数组创建错误

我正在尝试做这样的事情:

public static ArrayList<myObject>[] a = new ArrayList<myObject>[2];

myObject是一个类。我收到此错误:-通用数组创建(箭头指向new。)

回答:

你不能有泛型类的数组。Java根本不支持它。

你应该考虑使用集合而不是数组。例如,

public static ArrayList<List<MyObject>> a = new ArrayList<List<MyObject>();

另一个“解决方法”是创建这样的辅助类

class MyObjectArrayList extends ArrayList<MyObject> { }

然后创建一个数组MyObjectArrayList。

这是一篇很好的文章,说明了为什么在语言中不允许这样做。本文提供了以下示例,说明如果允许的话可能发生的情况:

List<String>[] lsa = new List<String>[10]; // illegal

Object[] oa = lsa; // OK because List<String> is a subtype of Object

List<Integer> li = new ArrayList<Integer>();

li.add(new Integer(3));

oa[0] = li;

String s = lsa[0].get(0);

以上是 Java 通用数组创建错误 的全部内容, 来源链接: utcz.com/qa/424940.html

回到顶部