这是因为您的数组是用null
值初始化的。
//it will initialize sets variable
sets = new ArrayList[5];
//but set[0], set[1]... and on are null
您还应该在使用它们之前初始化数组项
sets[0] = new ArrayList<Integer>();
sets[0].add(1);
此外,为了更好的设计,您应该面向接口而不是类进行编程。请参阅 “编程到接口”是什么意思?了解更多信息。
简而言之,您的代码应如下所示
public class A {
static List<Integer> sets[];
public static void main(String[] args) {
sets = new List[5];
sets[0] = new ArrayList<Integer>();
sets[0].add(1);
//extending your code in order to use more than one value of the List array
sets[1] = new ArrayList<Integer>();
sets[1].add(20);
for(List<Integer> list : sets) {
if (list != null) {
System.out.println(list.get(0));
}
}
}
}