请教一下判断对象是否为空是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
------解决方案--------------------