我吐 - 对提问者的不负责任,误导他人
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]
大家的争议都在Boolean == null 和null == Boolean到底能不能预防手误写成Boolean = null 而可能导致的NPE,我想说的是:不可以。
因为,你可能因为手误可能把Boolean == null 写成 Boolean = null,
那您是否也会因为手误把null == Boolean 写成 null = Boolean 呢,那么你可能会说null = Boolean会在编译时报错,OK,确实是这样,那么写成 null == Boolean的好处也就到此了,只能防止把 == 写成 =,但决不能防止NPE。
null == Boolean 只能检验是否把==误写成=,如果是错误把==写成=,那么请改过来,改过来就是null == Boolean,那么"null == Boolean"这句什么时候报NPE呢?
[b]
所以,null == Boolean不能预防空指针异常。
[解决办法]
[解决办法]
再补充一句,继续说if (o == null)这句会出NPE的,统统下地狱去吧!
[解决办法]
[解决办法]
哥哥 给分
[解决办法]
防止手误!!这个借口不错--
[解决办法]