Java中为什么建议采用null == obj,不建议obj == null?

11,121 阅读1分钟

一、引言

 前两天和哥们吃饭的时候,还讨论为什么要将null置前的原因。兄弟说:“将null置前的原因是避免空指针的缘故”。真的是这样的吗?

二、探究

 为什么会出现空指针异常?如果你引用了一个null对象的时候,并使用该对象进行一系列的操作的时候,这个时候会报空指针异常,下面看一下代码:

public static void main(String[] args) {
    Integer obj = null;
​
    if (obj == null){
        System.out.println("obj的值为null");
    }
}

输出结果:

java中null置前.png
事实证明,这跟空指针一点关系都没有!

三、为什么要这么写呢?

 在网上看到很多,大部分大佬都说避免在if中写成obj = null的情况,事实真的如此吗?

public static void main(String[] args) {
    Integer obj = null;
​
    /*if (obj == null) {
        System.out.println("obj的值为null");
    }*/
​
    //出现编译异常
    if (obj = null) {
        System.out.println("obj的值为null");
    }
}

 其实在if中写成obj = null,这个时候就会报编译时异常,编译都通过不了,所以你说呢?
为什么要这么写呢?我想是出于个人的编程习惯风格而已!

四、结尾

 我是Cheers!,刚步入职场的一名小白,欢迎各位大佬炮轰!谢谢!