null!= xxx 和 xxx!=null有什么区别?

hcr1987 2011-04-23 09:46:24
null!= xxx 和 xxx!=null有什么区别?
...全文
24310 182 打赏 收藏 转发到动态 举报
写回复
用AI写文章
182 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuxuweifeng 2013-12-23
  • 打赏
  • 举报
回复
楼上好多逗比
行商职员 2013-11-21
  • 打赏
  • 举报
回复
真心汗颜! 不会的少说话行不
shj0412 2013-10-29
  • 打赏
  • 举报
回复
android for (int i = 0; i < titleRequire.size(); i++) { RadioButton rb = (RadioButton) requireGroup.getChildAt(i); if (null != rb) // rb != null 当rb为null时程序直接崩了 { rb.setText(titleRequire.get(i)); } }
zjhdreams 2013-05-01
  • 打赏
  • 举报
回复
唉,感觉都是打酱油的呢,没有说到实际中去
火星大能猫 2012-11-15
  • 打赏
  • 举报
回复
引用 23 楼 silenceburn 的回复:
这个规范典故很多,比如其中一个,是因为程序员容易把 == 误写为 = , 如果把常量放前面 5 = i ,会编译错误,这样就能发现这种笔误bug
正解.
haoma2514 2012-08-14
  • 打赏
  • 举报
回复
[Quote=引用 34 楼 的回复:]

String sss= null
sss == null 和 null ==sss没区别

obj.someMethod() ==null 和 null==obj.someMethod() 是有区别的
因为obj为空时前者抛出空指针异常,后者不会

楼主懂?
[/Quote]


非常赞成! 现在的版本升级 后这个问题没有了 所有两种写法没区别,以前如果把null放右边,当左边表达式为null时是会抛出空指针异常的。 我问了好几个现在的同事都不知道这回事。。 悲剧。

上面的弄错了。Csdn的布局太乱了 ,把我看晕了。
haoma2514 2012-08-14
  • 打赏
  • 举报
回复
[Quote=引用 33 楼 的回复:]

第一种写法比第二种写法好多了,大多数的真实项目里面的代码都是用第一种写法,第一种比第二种严谨
[/Quote]

非常赞成! 现在的版本升级 后这个问题没有了 所有两种写法没区别,以前如果把null放右边,当左边表达式为null时是会抛出空指针异常的。 我问了好几个现在的同事都不知道这回事。。 悲剧。
haoma2514 2012-08-14
  • 打赏
  • 举报
回复
[Quote=引用 33 楼 的回复:]

第一种写法比第二种写法好多了,大多数的真实项目里面的代码都是用第一种写法,第一种比第二种严谨
[/Quote]

非常赞成! 现在的版本升级 后这个问题没有了 所有两种写法没区别,以前如果把null放右边,当左边表达式为null时是会抛出空指针异常的。 我问了好几个现在的同事都不知道这回事。。 悲剧。
luckystar2008 2011-07-28
  • 打赏
  • 举报
回复
Boolean b = null;
If (b = null) { //编译不会报错。
//xxx
}

但是写成下面的,编译就会报错的。
If (null = b) {
//xxx
}

你可以写完后,用javac 编译下。
y234239150 2011-06-22
  • 打赏
  • 举报
回复
Boolean b = null;
if(b = null)
{

}
eclipse中这么写 编译是可以通过的……
fmjsjx 2011-05-12
  • 打赏
  • 举报
回复
[Quote=引用 165 楼 windfromsky 的回复:]

bool variable = false;

if( variable = true )
{
//variable赋值为true, 表达式的值也为true,编译器不会报错
}

if( true = variable )
{
//编译器会报错
}

把常量写前头好点
[/Quote]
从来不写if (xxx==true) {...} 这种代码,
直接if (xxx) {...}不就行了……
duzif 2011-04-27
  • 打赏
  • 举报
回复
没什么区别
海枫 2011-04-27
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 ticmy 的回复:]

扯淡,i=5放到if里就不报错?!


引用 23 楼 silenceburn 的回复:

这个规范典故很多,比如其中一个,是因为程序员容易把 == 误写为 = ,
如果把常量放前面 5 = i ,会编译错误,这样就能发现这种笔误bug
[/Quote]

if(i = 5)
在gcc里面,这个语句只有warning,而没有error

不过如果程序员对warning视而不见,肯定不是一个合格的程序员。

由于gcc会报warning,所以在linux开源代码里,很少见把常量写在前面的做法。
龙牙牙个少 2011-04-27
  • 打赏
  • 举报
回复
在java里没有区别,不是人家头没有货,在C/C++有区别,防止你的那个变量没有申请内存成功,所以将null写在了前面,所以不要太绝对,你的头有可能以前是写c++的,所以用到java也是这样写,其实java没什么区别
windfromsky 2011-04-27
  • 打赏
  • 举报
回复
bool variable = false;

if( variable = true )
{
//variable赋值为true, 表达式的值也为true,编译器不会报错
}

if( true = variable )
{
//编译器会报错
}

把常量写前头好点
lippens 2011-04-27
  • 打赏
  • 举报
回复
[Quote=引用 149 楼 leolee82 的回复:]
如23楼的,C++中这是个好习惯
[/Quote]
看过86楼,再来说C++里这是不是个好习惯。只能说在C中这是个好习惯
mhl21 2011-04-27
  • 打赏
  • 举报
回复
第一种好,可以避免空指针错误,也就是避免产生 运行时错误在大程序开发里面是要求尽量避免的
lzy5710303 2011-04-27
  • 打赏
  • 举报
回复
没有学过java的一群人,竟然讨论java来了
在java中if(x=1)和if(1=x)都会报错,看清楚这里是Java
玉开 2011-04-27
  • 打赏
  • 举报
回复
如果是c#中这两种写法没啥区别,但是在c,或者c++中后一种写法是一种好的习惯。

因为c,c++中
if(x = null) //少写一个等号是可以编译通过的容易导致不好查的bug
而如果写成
if(null = x) //同样少写一个等号,编译器是会报错的,这就不容易出错。

后一种写法在c,c++是一种好的代码书写习惯。
w0z1y 2011-04-27
  • 打赏
  • 举报
回复
其实 != 的操作没有区别,但是 == 就会有点细微的差别,差别在于出现编写错误的情况下。比如你想编写如下代码:
char *p = .....
if (NULL == p) //这中写法一旦出现编写错误(== -> =)比较容易查找
//if (p == NULL) //如果这样写,可能就比较麻烦,要到运行时再发现就比较晚了。
加载更多回复(157)

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧