If (!password2.equals(password1)|| "".equals(password1) || password1.equals(null)) sentence error analysis:
First of all, the correct way to write it is if (null.equals(password1) | | "".equals(password1) || !password1.equals(password2)).
Then let’s analyze the wrong way of writing:
The main error is in the sentence password1.equals (null). The reason why this sentence is wrong is that password1 is placed outside. If it is null, a null pointer exception will be reported. And it should be checked first, because if password1 is null, then there is no need to check the rest.
! password2.equals(password1) Same as above, password2 may also have a null pointer problem, so password1 must be put outside, because it has been detected before, so if this sentence is executed, password1 will definitely not be null.
In addition, it can also be written in the following form: if (StringUtils.isEmpty(password1) || !password1.equals(password2)), StringUtils.isEmpty(password1) is equivalent to null.equals(password1) || "".equals (password1) is just encapsulated.
Attached is someone else’s explanation of StringUtils: (Transfer) The operation object of the StringUtils method is an object of the java.lang.String type, which is a supplement to the String type operation method provided by the JDK, and is null safe (that is, if the input parameter String If it is null, NullPointerException will not be thrown, but corresponding processing will be done. For example, if the input is null, the return value will also be null, etc. (You can view the source code for details).
For more articles related to java equals() usage error analysis, please pay attention to the PHP Chinese website!