我正在尝试做这样的事情:-
public static ArrayList<myObject>[] a = new ArrayList<myObject>[2];
myObject 是一个类。我收到此错误:- 通用数组创建(箭头指向新的。)
最佳答案
你不能有泛型类的数组。 Java 根本不支持它。
您应该考虑使用集合而不是数组。例如,
public static ArrayList<List<MyObject>> a = new ArrayList<List<MyObject>();
另一个“解决方法”是创建一个像这样的辅助类
class MyObjectArrayList extends ArrayList<MyObject> { }
然后创建一个MyObjectArrayList
数组。
这是一个good article为什么这在该语言中是不允许的。本文给出了以下示例,说明如果允许的话可能会发生什么:
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 - 通用数组创建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60306885/