假设我有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> ...
感谢任何帮助。
答案 0 :(得分:6)
// 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];
<强> UPD:强>
如果要创建列表数组,您应该:
示例:
List<FooClass>[] runs = new List[4];
for (int i = 0; i < runs.length; i++) {
runs[i] = new ArrayList<>();
}
答案 1 :(得分:2)
将Generics和Array混合起来并不是一个好主意。泛型不会在运行时保留类型信息,因此创建一系列泛型失败。
答案 2 :(得分:0)
列表不应声明为数组。它应该是:
List<FooClass> runs=new ArrayList<FooClass>(4);
或
List<FooClass> runs=new ArrayList<FooClass>();
修改:您可以尝试List<ConfigParser> runs[] = new List[4];
。但为什么你需要一系列的列表?
同样@ rai.skumar提到,由于类型擦除,在运行时不保留通用信息。