为什么
空指针啊
public static void main(String[] args) {
int number = 2;
List ex = new ArrayList();
String [][] arr = new String[number][];
for (int j = 0; j < 8; j++) {
if (number > 0) {
for (int i = 0; i < number; i++) {
arr[i][j] = "a ";
}
}
}
for(int i = 0;i <arr.length;i++){
for(int j=0;j <arr[i].length;j++){
System.out.println(arr[i]);
}
}
}
------解决方案--------------------是
这样定义
String[][] arr = new String[number][];
与
这样使用
arr[i][j] = "a ";
不和谐所致
第二维没有指定维数,即没初始化,更不能直接赋值了。
------解决方案--------------------二维数组
public class Test2 {
public static void main(String[] args) throws Exception {
int number = 2;
List ex = new ArrayList();
String[][] arr = new String[number][];
for (int i = 0; i < arr.length; ++i) {
arr[i] = new String[8];
}
for (int i = 0; i < number; i++) {
for (int j = 0; j < 8; j++) {
arr[i][j] = "a ";
}
}
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.println(arr[i][j]);
}
}
}
}
------解决方案--------------------List [] elother = new ArrayList[number];
这个过程并没有完成初始化,只是声明了一个含有2个元素的List数组,并且规定其实例化类型为ArrayList,就是缺少了最后实例化的步骤。
须如此:
List[] elother = new ArrayList[]{new ArrayList(),new ArrayList()};