NullPointerException的问题

kueixing 2003-10-11 02:48:50
public class A {

public static void main(String[] args) {
String a1="1,2,3";
String a2[]=a1.split(",");
String a3[]=null;
int i=0;
while(a2[i]!=null)
{
switch(Integer.parseInt(a2[i]))
{
case 1:a3[0]="image1";break;
case 2:a3[0]="image2";break;
default:a3[i]=null;
}
i++;
System.out.println(a3[i]);
}

}

}
这段代码运行时为什么会出现NullpointerException的错误呢?
...全文
27 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
James1001 2003-10-11
  • 打赏
  • 举报
回复
方法中的变量不会自动初始化,因此在使用前一定要初始化,这也是Java语言的一种安全机制,数组变量在使用前一定要初始化其所能指向的数组对象,要有确定的维数
bamboo123 2003-10-11
  • 打赏
  • 举报
回复
a2的长度只有3个a2[0],a2[1],a2[2]
当你判断到a2[3]的时候,超出了数组的元素个数。
可以用数组的长度作为判断条件。
kueixing 2003-10-11
  • 打赏
  • 举报
回复
public class A {

public static void main(String[] args) {
String a1="1,2,3";
String a2[]=a1.split(",");
String a3[]=new String[a2.length];
int i=0;
while(a2[i]!=null)
{
switch(Integer.parseInt(a2[i]))
{
case 1:a3[i]="image1";break;
case 2:a3[i]="image2";break;
case 3:a3[i]="image3";break;
default:a3[i]=null;
}
System.out.println(a3[i]);
i++;

}
System.out.println("ok!");
}
}
现在又有java.lang.ArrayIndexOutOfBoundsException: 3
Exception in thread "main"
a2[i]!=null怎么会出错阿?
whyxx 2003-10-11
  • 打赏
  • 举报
回复
String a3[]=null;当然会出NullpointerException了
DainelLee 2003-10-11
  • 打赏
  • 举报
回复
a3未初始化

加入:
a3 = new String[a2.length];

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧