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

为啥报错了

2012-10-20 
为什么报错了Java codepublic class Lian {public static void main(String[] args){String fooblueBo

为什么报错了

Java code
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
为什么报空指针异常

[解决办法]
Boolean[] bar = new Boolean [1];
只是定义未赋值,数组值为空
bar[0]调用,自然就是空指针
[解决办法]
bar[0] 是个Boolean对象,但没有初始化,其值是null。
加一句:
Java code
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);    }}
[解决办法]
搞了半天才看出来是什么了
Boolean是应用数据类型 系统自动初始化null
你把Boolean换成boolean试试看
boolean是基本数据类型 那么默认值就是false 就不会报错了

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

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


public Boolean(String s) {
this(toBoolean(s));
}
[解决办法]
boolean[] bar = new boolean[1];

热点排行