public class MainFrame {
public static void main(String[] agrs) {
String xx = "asdaf";
String aa = null ;
if(xx.equals(aa)) {
System.out.println("null");
} else {
System.out.print(xx);
}
}
}
这样用字符串跟null比较会出错吗, 会有什么严重问题吗??

解决方案 »

  1.   

    public class MainFrame {
    public static void main(String[] agrs) {
        String xx = "asdaf";
        String aa = null ;
    if(xx.equals(aa)) {
            System.out.println("null");
        } else {
            System.out.print(xx);
        }
    }
    }
    没问题如果改成
    public class MainFrame {
    public static void main(String[] agrs) {
        String xx = "asdaf";
        String aa = null ;
    if(aa.equals(xx)) {
            System.out.println("null");
        } else {
            System.out.print(xx);
        }
    }
    }
    就会报空指针异常,所以用equals的时候要注意前面的字符串是不是NULL了
      

  2.   

    没有什么实际意义,如果xx是null的话没有equals()方法,直接报错了,判断是否为null直接用 xx==null就好了
      

  3.   

    xx.equals(aa)你这个方法只会返回true或者false,
    当正确判断一个字符串是否为空应该这样:
    if(xx != null && !xx.equals(""))
      

  4.   

    判断是否为null 用 == null 比较好
      

  5.   

    equals 会先判断传入的类型是不是相同
    null 不是 String 类型
    所以返回 false
      

  6.   

    不会有什么问题的,你的判断xx.equals(aa)只是说xx是否为空(null)
    并没有什么错误
      

  7.   

    学习。xx.equals(aa);//貌似学习点在于:xx不可以为空,不然有空指针错误。至于aa,是否为空并不影响编译。
      

  8.   

    答:楼主真正想问的其实是:
    [color=#FF0000"asdaf".equals(null)[/color] 有没有什么严重问题。
    这个问题等价于:null instanceof String  有没有什么严重问题。
    当然:没有问题。结果都是false
      

  9.   

    判断NULL表示对象的指向,而不必用equals