if(str == null || "".equals(null))和if(str == null || str.equals(""))有什么区别吗


if(str == null || "".equals(null))和if(str == null || str.equals(""))有什么区别吗 

 

 
如果str == null 为真,则前者if()中会返回false,后者if()会报空指针异常;
你这里使用的str字符串对象是null,表示没有指向任何对象,在执行str.equal()方法时,虚拟机会发现str不能调用其实例方法equals(),所以返回异常,表明这是一个需要引起注意的地方;反过来 "".equals(str),""不为null,而是一个字节为0的对象,所以不会抛出异常,一个不为空,一个为空,当然返回false;
再有,写str != null 没有错,但是最好养成 null != str的习惯,因为 null!=str 永远不会产生空指针异常,但其他的很容易产生,这也是极限编程建议的写法


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM