为什么报错了

wandefajin 2012-09-27 10:20:48




public class Lian {
public static void main(String[] args){
String foo="blue";
Boolean[] bar = new Boolean [1];

if (bar[0]) {
foo ="green";
}
System.out.println(foo);
}
}






报的是
java.lang.NullPointerException
为什么报空指针异常
...全文
128 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wandefajin 2012-10-10
  • 打赏
  • 举报
回复
谢谢大家了
菖蒲老先生 2012-09-28
  • 打赏
  • 举报
回复
boolean[] bar = new boolean[1];
smail歇歇 2012-09-27
  • 打赏
  • 举报
回复
搞了半天才看出来是什么了
Boolean是应用数据类型 系统自动初始化null
你把Boolean换成boolean试试看
boolean是基本数据类型 那么默认值就是false 就不会报错了

局部变量中变量不会自动初始化的 但是用new的基本变量会自动初始化

Boolean是它的封装类,和其他类一样。
Boolean b = new Boolean("false“);


public Boolean(String s) {
this(toBoolean(s));
}
nmyangym 2012-09-27
  • 打赏
  • 举报
回复
bar[0] 是个Boolean对象,但没有初始化,其值是null。
加一句:

public class Lian
{
public static void main(String[] args)
{
String foo="blue";
Boolean[] bar = new Boolean [1];
bar[0]=new Boolean("false");//这要初始化一下。(或bar[0]=new Boolean("true");)
if (bar[0]) {
foo ="green";
}
System.out.println(foo);
}
}
杀手 2012-09-27
  • 打赏
  • 举报
回复
Boolean[] bar = new Boolean [1];
只是定义未赋值,数组值为空
bar[0]调用,自然就是空指针

23,404

社区成员

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

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