difference between null != something and something != null

前端 未结 7 1300
予麋鹿
予麋鹿 2021-01-22 11:41

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??

相关标签:
7条回答
  • 2021-01-22 12:09

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

    0 讨论(0)
  • 2021-01-22 12:12

    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.

    0 讨论(0)
  • 2021-01-22 12:14

    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.

    0 讨论(0)
  • 2021-01-22 12:21

    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.

    0 讨论(0)
  • 2021-01-22 12:22

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

    0 讨论(0)
  • 2021-01-22 12:24

    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

    0 讨论(0)
提交回复
热议问题