这两种书写格式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和 "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推荐的!! 我不想说什么,我只是庆幸不用改他们写的代码,还有我不是他们的用户 还有,写程序之前最好弄清楚要做什么,用复杂且自以为正确的代码往往是程序崩溃和逻辑错误的根源 我建议大多数新手用第二种方法,不为什么,为将来维护你们代码的人行行好吧
解决方案 »
- struts2上传文件问题
- JPanel问题
- String 创建对象 问题 在线 急等
- it is possible that the code of A.foo is executed during evaluation of (new B{}).foo{} in the following?
- java 内部类问题 请高手帮忙
- 请问:在unix平台下如何把新浪的天气预报自动录入到数据库中?
- java 中事件处理
- 一个项目如何import另一个项目的package的类?
- 那里有rational rose 下载阿!!!!!
- 请教:关于Java Swing的Table的刷新的问题
- JOptionPane问题
- 用Scanner输入数据,如何解决数据类型不匹配的异常
这个好一些,应该可以避免空指针异常。
"des ".equals(src)这种形式,能从jdk的源码里面找到类似的用法吗?jdk的源码应该是比较有说服力吧?
http://www.purji.com/list-8.htm
这个好一些,应该可以避免空指针异常。即如果 src 为null时也不会抛出异常
这个函数本来就是用来检验src和des是否相等,这应该是大多数程序使用这个函数的初衷
校验src是否为空是用 src==null或其他语句来校验难道要用src.equals("des ")来校验src为null?
所以使用"des ".equals(src)才是正确的。