假设我有类 FooClass。
public class FooClass {
}
以下行给了我以下编译错误:
// Note I want to create an array of length 4 of Lists of FooClass
List<FooClass> runs[]=new List<FooClass>[4];
Cannot create a generic array of List<FooClass> ...
将不胜感激任何帮助。
假设我有类 FooClass。
public class FooClass {
}
以下行给了我以下编译错误:
// Note I want to create an array of length 4 of Lists of FooClass
List<FooClass> runs[]=new List<FooClass>[4];
Cannot create a generic array of List<FooClass> ...
将不胜感激任何帮助。
// if you want create a List of FooClass (you can use any List implementation)
List<FooClass> runs = new ArrayList<FooClass>();
// if you want create array of FooClass
FooClass[] runs = new FooClass[4];
升级版:
如果要创建列表数组,您应该:
例子:
List<FooClass>[] runs = new List[4];
for (int i = 0; i < runs.length; i++) {
runs[i] = new ArrayList<>();
}
混合泛型和数组并不是一个好主意。泛型在运行时不保留类型信息,因此创建泛型数组失败。
列表不应声明为数组。它应该是:
List<FooClass> runs=new ArrayList<FooClass>(4);
或者
List<FooClass> runs=new ArrayList<FooClass>();
编辑:你可以试试List<ConfigParser> runs[] = new List[4];
。但是为什么你需要列表数组呢?
同样正如@rai.skumar 所提到的,由于类型擦除,通用信息在运行时不会保留。