difference between null != something and something != null

前端 未结 7 666
故里飘歌
故里飘歌 2021-01-22 20:04

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 20:17

    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)
  • 2021-01-22 20:21

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

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

    They are both the same there is no difference.

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

    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 20:24

    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 20:24

    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)
提交回复
热议问题