I heard several times that in using boolean equals(Object o) to compare Strings, it’s better to put the constant on the left side of the function as in the following:
- Bad: myString.equals(“aString”);
- Good: “aString”.equals(myString);
Why is this?
Because if
myStringis null you get an exception. You know"aString"will never be null, so you can avoid that problem.Often you’ll see libraries that use
nullSafeEquals(myString,"aString");everywhere to avoid exactly that (since most times you compare objects, they aren’t generated by the compiler!)