public class TestString {
 
public static void main(String[] args){
String foo = "blue";
  Boolean[]bar = new Boolean [1];
  if (bar[0]) {
  foo = "green";
 }
}
}
看到一个CASE上说它不能编译,可是实验结果却能通过编译。执行阶段抛出NULLPointerException。为什么?另外,STRING的值什么情况下不能修改?

解决方案 »

  1.   

    你的程序本身有问题吧,if里面应该是boolean 而不应该是Boolean
      

  2.   

    public class TestString {
     
    public static void main(String[] args){
    String foo = "blue";
      Boolean[]bar = new Boolean [1];
      if (bar[0]) {
      foo = "green";
     }
    }
    }
      

  3.   

    Boolean[]bar = new Boolean [1];
    会初始化一个Boolean对象数组,里面的值为null,
    boolean[]bar = new boolean [1];
    会初始化一个boolean对象数组,里面的值默认为false。
      

  4.   

    Boolean是类
    boolean是基本类型
    这样就应该知道了吧
      

  5.   

    你没修改STRING值吧,只是又新建了一个String对象