difference between null != something and something != null

≡放荡痞女 提交于 2019-12-02 07:11:19

问题


Is there a difference between null != something and something != null in Java. And if there is a difference then which one should I use and why??


回答1:


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




回答2:


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.




回答3:


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.




回答4:


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




回答5:


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.




回答6:


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




回答7:


They are both the same there is no difference.



来源:https://stackoverflow.com/questions/14578703/difference-between-null-something-and-something-null

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