当前位置: 代码迷 >> J2SE >> 请问一下判断对象是否为空是NULL写左边的原因
  详细解决方案

请问一下判断对象是否为空是NULL写左边的原因

热度:33   发布时间:2016-04-24 01:11:59.0
请教一下判断对象是否为空是NULL写左边的原因?
请教一下判断对象是否为空是NULL写左边的原因?

  习惯这样 if(null == object){.... 请问这么做的好处到底是什么?(只谈java里这么写的原因,不考虑jsp)

------解决方案--------------------
一般常量都会写在左边,这是因为==和=比较相近,如果误写成“=”,那么常量写在左边的会报错,
而,常量写在右边的不会报错。只是编程习惯问题。
------解决方案--------------------
还是有一定道理的。一般规范是要判断==的都放左边,以人类的阅读习惯来说,更直观。并且不易犯错(怕你写成=赋值)写右边就检查不出来
------解决方案--------------------
晕。。
null写左边主要是来防止你在输入==时少打了个等号变成赋值。
null写在左边 马上就会报错。
写在右边 编译不会出错的。甚至有时运行都不出运行错误,只是在程序的逻辑上出错了,结果当然错了。
这样的错误很难查找。
所以写在左边是个好习惯。
------解决方案--------------------
探讨
一般常量都会写在左边,这是因为==和=比较相近,如果误写成“=”,那么常量写在左边的会报错,
而,常量写在右边的不会报错。只是编程习惯问题。

------解决方案--------------------
java中将==写成=就直接报错了,我就习惯写在右边

探讨

一般常量都会写在左边,这是因为==和=比较相近,如果误写成“=”,那么常量写在左边的会报错,
而,常量写在右边的不会报错。只是编程习惯问题。

------解决方案--------------------
一般写C++的喜欢这样写
------解决方案--------------------
既然强求区别,我就分析给你看看吧!

使用 javap -c Test 反编译查询 JVM 指令,结果如下:

Java code
public class Test {    public static void main(String[] args) {        String str = null;        System.out.println(str != null);    }}   0:   aconst_null   1:   astore_1   2:   getstatic       #2; //Field java/lang/System.out:Ljava/io/PrintStream;   5:   aload_1   6:   ifnull  13   9:   iconst_1   10:  goto    14   13:  iconst_0   14:  invokevirtual   #3; //Method java/io/PrintStream.println:(Z)V   17:  return
------解决方案--------------------
探讨

引用:

引用:

一般常量都会写在左边,这是因为==和=比较相近,如果误写成“=”,那么常量写在左边的会报错,
而,常量写在右边的不会报错。只是编程习惯问题。

虽然这个说法是对的,但是我发现我实在是不习惯这么写,觉得很别扭,我们应该相信自己能敲对的,总靠编译器去提醒我们什么不是好习惯。

顶果子。

……
  相关解决方案