package cn.enn;
public class Logic {
/**
* @author zhangxiaojun
* @version Aug 31, 2011 3:52:40 PM
* @param args
* TODO:
*/
static String str ;
public static void main(String[] args) {
// TODO Auto-generated method stub
// if(str!=null & !str.equals("")){
// System.out.println(str);
// }else{
// System.out.println("cc "+str);
// }
System.out.println("".equals(null));
}
}
分析:如上代码 写成if(str!=null & !str.equals("")){ 则 报错:Exception in thread "main" java.lang.NullPointerException
at cn.enn.Logic.main(Logic.java:15)
如果写成 if(str!=null & !"".equals(str)){ 则不报错 运行正常。
原因分析:equals的语法格式: String的equals(Objecet obj)方法, 括号里面只要是个object就可以。如果str=null那么 就不能正确执行str.equals("") 因为null不是String类型,相反"".equals(null) 则可以。