Constant value should always come first in comparison
Normal practice
Constant value comes second in comparison.
private static final String COMPARE_VALUE = "VALUE123"; public boolean compareIt(String input){ if(input.equals(COMPARE_VALUE)){ return true; }else{ return false; } }
Problem
This is fine to compare a constant value with the above method, however it will potentially causing a NullPointerException, if user pass a “null” value for the comparison. For example :
if(input.equals(COMPARE_VALUE)) //hit NullPointerException if input is "null"
Best practice
Constant value should always come first in comparison.
private static final String COMPARE_VALUE = "VALUE123"; public boolean compareIt(String input){ if(COMPARE_VALUE.equals(input)){ return true; }else{ return false; } }
Tags : best practice java

If user pass a “null” value for the comparison there will be a null pointer exception inside the String#equals method when the constant is set first. There might be another good reason for that pattern since I have seen it in many projects.