http://topic.csdn.net/u/20110916/13/1cebe474-27b1-4c5e-ba6a-b35c06332802.html?seed=1695885886&r=75589288#r_75589288
原文:
String s = "abcde";
if(s==null) 和 if(null==s) 这两个有什么区别啊??
有什么优点和缺点,一般用哪个啊???
回答:
4楼:用 if(null == s)这种形式一般不会出现空指针错误~~~
第一个这样回答的,不怪他,他也许不知道回答错误,并不是他的本意。
7楼:引用 4 楼 magicliukun 的回复:
用 if(null == s)这种形式一般不会出现空指针错误~~~
+1
8楼:理论上一样,但是 null==s 不会出现空指针。
15楼:==经常会误打成=
NULL=s的话编译器直接会报错
S=NULL的话会程序运行时出现莫名错误很难找
20楼:引用 15 楼 baitoclus 的回复:
==经常会误打成=
NULL=s的话编译器直接会报错
S=NULL的话会程序运行时出现莫名错误很难找
这个必须得顶起
22楼:一样的,前面一种可能空指针
23楼:你这样写是没有区别的,但你如果是获取别的页面传值的话一般用后者,因为前者可能会报空指针。
25楼:理论上没区别。 只是为了避免空指针错误。
26,27楼:引用 25 楼 z6683227 的回复:
理论上没区别。 只是为了避免空指针错误。
yes
......后面的就不帖了,太多了。
这是一个提问区:我们应该认真对待楼主的问题,不要自己被误导了还要去误导别人。
如果是第一个人回答错误了,这也很正常,可是没想到居然后面还多的数不胜数,我吐。
1.会出现NullPointerException的,如果你这这样回答的,有本事你找一个实例出来给大家瞧瞧,别在这里瞎扯。
2.防止手误的。if(s=null),如果你认为是这样的,你就回去写写试试看看,在用Javac编译一下,看你这个手误编译器能不能给你检测出来。
上面的东西根本就没有任何区别。
------解决方案--------------------
呵呵,很多jdk的源代码中也是使用obj == null
------解决方案--------------------
楼主好人!!学习了
------解决方案--------------------
==null null== 随你怎么放, 看你个人习惯, 如果是 equals() 那么建议你常来放左边, 可以防止 NullPointException
------解决方案--------------------
楼主很有正义感,值得表扬
那个帖子我当时看到4楼的时候也小晕了一下
------解决方案--------------------
有些人回答问题依据的想当然。
------解决方案--------------------
空指针,我倒。
为了防止手误写成s=null赋值,所以写成null==s。
------解决方案--------------------
很多人没学过java或者用Boolean说事。
------解决方案--------------------
不用编辑器,你的IDE已经就可以把这个问题解决了~!~!~!
------解决方案--------------------
mark 学习了 其实原帖我看过的 不过没想太多 认真的人总是会有回报的 赞LZ
------解决方案--------------------
没有任何方法操作,这两种做法是没任何区别的
------解决方案--------------------
------解决方案--------------------
楼主细心呀,嘿嘿
[code=Java][/code] String str = "" ;
if(str = null) {
System.out.println("test");
}
}
这样写的话eclipse会报错的。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
[size=24px]我还是要说:都一样。[/size]