Java 类型无法创建列表的泛型数组<;食品级>;

Java 类型无法创建列表的泛型数组<;食品级>;,java,list,collections,Java,List,Collections,假设我有课 public class FooClass { } 下一行给出了以下编译错误: // Note I want to create an array of length 4 of Lists of FooClass List<FooClass> runs[]=new List<FooClass>[4]; //注意,我想创建一个长度为4的数组,其中包含FooClass的列表 列表运行[]=新列表[4]; 无法创建列表的常规数组。。。 非常感谢您的帮助。收藏

假设我有课

public class FooClass {
}
下一行给出了以下编译错误:

// Note I want to create an array of length 4 of Lists of FooClass
List<FooClass> runs[]=new List<FooClass>[4];
//注意,我想创建一个长度为4的数组,其中包含FooClass的列表
列表运行[]=新列表[4];
无法创建列表的常规数组。。。
非常感谢您的帮助。

收藏与:

//如果要创建FooClass的列表(可以使用任何列表实现)
列表运行=新建ArrayList();
//如果要创建FooClass的数组
FooClass[]运行=新的FooClass[4];
UPD:

如果要创建列表数组,应:

  • 创建数组
  • 用列表实例填充此数组
  • 例如:

    List<FooClass>[] runs = new List[4];
    for (int i = 0; i < runs.length; i++) {
        runs[i] = new ArrayList<>();
    }
    
    List[]运行=新列表[4];
    for(int i=0;i
    混合使用泛型和数组不是个好主意。泛型在运行时不保留类型信息,因此创建泛型数组失败。

    列表不应声明为数组。应该是:

    List<FooClass> runs=new ArrayList<FooClass>(4);
    
    List runs=newarraylist(4);
    

    List runs=new ArrayList();
    
    编辑:您可以尝试
    列表运行[]=新建列表[4]。但为什么需要一系列列表呢


    另外,正如@rai.skumar所提到的,由于类型擦除,通用信息在运行时不会保留。

    非常感谢我更新了Q。。。请你再看一看。我不是落选者,但我认为OP要求创建列表数组而不是单个列表。是@Eng.Fouad(顺便说一句,我也不是落选者)-但是的,我正在尝试创建列表数组而不是单个列表。嗨@rajesh,我实际上想创建一个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>();