This may be redundant in Java and I am aware of the assignment vs comparison problem in C/C++. The result of an assignment is the value assigned. The only time when it would be a problem in a comparison in Java is for a boolean value because the assignment is a boolean expression but a boolean value cannot be null anyway and also it is preferred to use the boolean variable or a negation of it directly in the if statement. C/C+ + doesn't have a true boolean type and if statements happily work on numeric types or pointers which can be treated as numeric types.
The practice of using if (null == value) may be redundant in Java but I remember getting into a discussion about how it was still relevant in .net by virtue of implicit cast behaviour making the result more unpredictable in .net than Java. Presumably I would guess it would be if some type has a null value and an implicit cast exists to cast a value of that type to a boolean value including when it is null but that to me seems like a very narrow fringe case (and also potentially an argument against custom implicit casts perhaps). On May 3, 3:55 pm, Cédric Beust ♔ <[email protected]> wrote: > On Tue, May 3, 2011 at 4:16 AM, Kevin Wright <[email protected]>wrote: > > > There was a code style which stated null checks should have taken the > >> form of if (null == variable) which coming from Java I said was > >> unnecessary however it turns out that due to .net support for implicit > >> casts there are some fringe cases where if (variable == null) will > >> behave differently to if (null == variable) apparently. Most of the > >> developers used if (variable == null) though in spite of the coding > >> standard because it was more intuitive. > > > I think this originates with checks against literal values instead of > > against null when using value instead of reference equality. > > No, I think this comes from the fact that C++ allows assignments in > expressions, therefore you can write: > > if (a = NULL) ... > > when you actually mean > > if (a == NULL) ... > > Reversing the arguments avoids this pitfall. Obviously, this is not > necessary in Java. > > -- > Cédric -- You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
