编译错误:通用数组创建

Ian*_*Ian 2 java

我想创建一个数组ArrayList<String>.我尝试了以下方法:

static ArrayList<String>[] displayBlocks = new ArrayList<String>[3];
Run Code Online (Sandbox Code Playgroud)

但是,我得到一个编译时错误:

通用数组创建

我补充说import java.util.*;.我怎样才能编译它?

Dar*_*der 10

如果你想要一个arraylist数组:

import java.util.ArrayList;
import java.util.List;

public class Foo{

    List [] arrayOfLists = new ArrayList[10];


}
Run Code Online (Sandbox Code Playgroud)

这是一篇相关的帖子.你不能创建一个通用的arraylist数组.你可以这样做:

import java.util.ArrayList;
import java.util.List;

public class Foo{

    ArrayList<ArrayList<String>> ll = new ArrayList<ArrayList<String>>();


}
Run Code Online (Sandbox Code Playgroud)


Bal*_*usC 5

在Java中确实不允许使用此构造.你可以使用varargs hack:

static List<String>[] displayBlocks = createArray(3);
Run Code Online (Sandbox Code Playgroud)

public static <E> E[] createArray(int length, E... elements) {
    return Arrays.copyOf(elements, length);
}
Run Code Online (Sandbox Code Playgroud)

毋庸置疑,a List<List<String>>更好,除非你对内存非常紧张,但后来我不知道为什么你不使用String[][].