首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

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

2012-03-07 
为什么空指针啊publicstaticvoidmain(String[]args){intnumber2ListexnewArrayList()String[][]arrne

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

热点排行