读书人

为什么空指针啊该怎么解决

发布时间: 2012-03-07 09:13:51 作者: rapoo

为什么空指针啊
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()};

读书人网 >J2SE开发

热点推荐