2

null != somethingJava和something != nullJava之间有区别吗?如果有区别,那么我应该使用哪一个,为什么?

4

7 回答 7

5

它可能来自您编写的所谓的 joda-conditions,"bla" == myVariable而不是myVariable == "bla"因为它可能碰巧myVariable = "bla"在某些语言中返回“bla”但也将“bla”分配给 myVariable

于 2013-01-29T08:44:58.163 回答
5

null != something和之间没有区别something != null。您一定在考虑两者person.getName().equals("john")"john".equals(person.getName())区别:第一个会抛出NullPointerExceptionif getName()returns null,而第二个不会。但这不适用于您的问题示例。

于 2013-01-29T08:44:33.700 回答
4

我只想指出,这样做的“尤达条件”基本原理(在 C 和 C++ 等语言中)不适用于这种(Java)案例。

  1. Java 不允许将通用表达式用作语句,因此两者

     something == null;
    

     null == something;
    

    将是编译错误。

  2. something == null和的类型something = null不同;boolean 和一些引用类型。在这种情况下,这意味着两者:

     if (something = null) {
         ...
     }
    

     if (null = something) {
         ...
     }
    

    将是编译错误。

事实上,我想不出一个现实的例子,哪里null == something会出现编译错误而something == null不会。因此,它在防错方面没有任何成就。

于 2013-01-29T09:39:42.210 回答
1

从性能上看不会有区别,两边的算子都是执行任何方式的。但是对于更易读的代码,第二个似乎更易读

  obj.getSomething().getAnotherThing().doSomething() != null

  null != obj.getSomething().getAnotherThing().doSomething()

但是,如果您只想比较变量或参数,则更具可读性

  something != null

当然,这取决于读者的感觉。

于 2013-01-29T08:45:09.197 回答
1

没有区别,但有些人使用它是为了便于代码的可读性。

于 2013-01-29T08:42:56.993 回答
0

在java中,如果我们比较任何东西,我们总是必须将变量放在左侧,而值放在右侧......

于 2013-01-29T08:45:01.863 回答
0

它们都是一样的,没有区别。

于 2013-01-29T08:45:32.277 回答