这两种书写格式src.equals( "des ") 和 "des ".equals(src)哪个好?
这两种书写格式src.equals( "des ") 和 "des ".equals(src)哪个好?
有人说前一种好,有人说好一种好,避免了
空指针异常。
我觉得这个问题很可笑
首先,请你们从异常处理的角度摆脱出来
问一下自己你们要干什么!
显而易见,你们要判断变量src和 "des "是否相等,我并不需要关心src的值,src为null又如何?null也是一个合理的数据!假如用户在这一栏可输入可不输入,这个值那传到java程序为null不对么?
所以:
src.equals( "dec ")隐含了一个NullPointException错误,这是我们需要避免的
src!=null&&src.equals( "dec ")只不过显式规定了src不等于null
而 "dec ".equals(src)和上式从效率到规范到任一一种形式完全相同
因为string的equals方法先判断是否和本身相等然后就判断参数是否为String,如果不是马上return false
所以,归根到底,你们只不过是把equals()里面的这个方法提到外面来而已。在简单地说,为了心安理得的写安全的代码,你们把这个判断提到外面来来满足自己的自信心。
我真的很佩服多数人,居然有这么多千奇百怪的理论,甚至有人说两个都会抛异常,甚至还有人用try/catch,还要throw!!还有人说这个是sun推荐的!!
我不想说什么,我只是庆幸不用改他们写的代码,还有我不是他们的用户
还有,写程序之前最好弄清楚要做什么,用复杂且自以为正确的代码往往是程序崩溃和逻辑错误的根源
我建议大多数新手用第二种方法,不为什么,为将来维护你们代码的人行行好吧
------解决方案--------------------我不觉得楼主说的对,如果src对象是哪个函数结果传过来的,而此函数结果为空可能是出现了错误,而用第二种却隐藏了这种错误,而这种错误可能一直隐藏
------解决方案--------------------
------解决方案--------------------瞎激情
------解决方案--------------------http://topic.csdn.net/u/20110412/12/61c1d18e-1ba4-4538-acdd-64ffa578eca4.html