如果 projectName  为NULL的话 用equals会报错。NULL.equals 肯定错的。

解决方案 »

  1.   

    这个语句应该是用在 || 上的 用在&&上没啥意义 
    if(projectName==null || "".equals(projectName ))
      

  2.   

    如果projectName=null时,判断!"".equals(projectName)为true,判断就通过了
      

  3.   

    "".equals(projectName)并不能判断projectName是否为null.也就是"".equals(null)并不为true所以还要对它是否为null进行判断if (null != projectName && !"".equals(projectName) {
      //代码
    }与if ( !"".equals(projectName) && projectName != null) {
      //代码
    }在效果上并没有区别。只是可能会多执行一下代码
      

  4.   

    projectName 里为String型的时候 当他为空时
    projectName = null 捕捉不到
    而"".equals(projectName) 则可以
      

  5.   

    if(projectName.equals(""))不就解决了啊....我一直都是这样写的...这样也不会报什么空指针错误
      

  6.   

    这里的比较是用右边的去比较左边的,所以要用null != projectName;在程序中projectName只有一个,而null不好确定。
      

  7.   

    null != projectName 是防止编写代码时 少写一个! 或者少些 = 号,这样的习惯为防止编写代码时的错误! 
      

  8.   


    正解
    而谈到效率问题 就应该是&&运算的短路问题了 如果前一半projectName != null为false了后一半!"".equals(projectName)就不会执行了 
    如:
    int x=3;
    int y=0;
    if(x>3 && (y=1)>2){
    }
    System.out.println(y); 打印0;
      

  9.   

    这帮怂人也就会拿这种小儿科的东西出来讨论还有这么多人回答,看着就烦,一个人回答不就行了。
    我问的问题国内没几个人回答的,尤其是CSDN,这CSDN上面垃圾越来越多。