difference between null != something and something != null

社会主义新天地 提交于 2019-12-02 06:56:35

its probably comming from the so-called joda-conditions where you write "bla" == myVariable instead of myVariable == "bla" because it could happen to accidentially write myVariable = "bla" which returns "bla" in some languages but also assign "bla" to myVariable

There's no difference between null != something and something != null. You must be thinking about the person.getName().equals("john") and the "john".equals(person.getName()) difference: the first one will throw a NullPointerException if getName() returns null, while the second won't. But this is not applicable for the example of your question.

I just want to point out that the "Yoda condition" rationale for doing this (in languages like C & C++) does not apply in this (Java) case.

  1. Java does not allow general expressions to be used as statements, so both

     something == null;
    

    and

     null == something;
    

    would be compilation errors.

  2. The types of something == null and something = null are different; boolean and some reference type respectively. In this case, it means that both:

     if (something = null) {
         ...
     }
    

    and

     if (null = something) {
         ...
     }
    

    would be compilation errors.

In fact, I can't think of a realistic example where null == something would be compilation error and something == null would not. Hence, it doesn't achieve anything in terms of mistake-proofing.

There is no difference, but some people use it for ease of readability in their code.

Point of view of performance there will be no difference, both sides of the operator are executed any way. But for a more readable code second one seems more readable

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

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

But if you are going to just compare a variable or parameter this is more readable

  something != null

Of course this depends on sense of reader.

In java if we compare any, always we have to place variables at left hand side and values are placed at right hand side...

They are both the same there is no difference.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!