问题
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.
Java does not allow general expressions to be used as statements, so both
something == null;
and
null == something;
would be compilation errors.
The types of
something == null
andsomething = 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