java 编译通过运行出错请高手指教

来源:百度知道 编辑:UC知道 时间:2024/05/29 20:38:45
程序如下:
class test1
{
public static void main(String[] arg)
{
String foo = "blue";
Boolean[]bar=new Boolean[1];
if(bar[0].booleanValue())
{
foo = "green";
}
System.out.println(foo);
}
}
编译时没问题,但运行时报错“Exception in thread "main" java.lang.NullPointerException
at test1.main(test1.java:7)”
我初学java不知道是什么原因,还请高手不吝赐教,不胜感激!

你定义的Boolean[]bar=new Boolean[1]; 只是声明了bar为Boolean的引用reference,但这个引用并没有指向一个Boolean实体,所以接下来必须用bar[0]=new Boolean(false);来进行一个指向,否则指针为空就会报错

那是因为bar[0]的值是null,你用System.out.println(bar[0]);试试就知道。