toString()
that are used in the following cases:
java.lang.StringBuilder#append()
or java.lang.StringBuffer#append()
methodsjava.io.PrintWriter
or java.io.PrintStream
org.slf4j.Logger
In these cases, conversion to string will be handled by the underlying library methods,
and the explicit call to toString()
is not needed.
Removing redundant toString()
calls can occasionally even improve performance and reduce object allocations.
Example:
System.out.println(this.toString())
After the quick-fix is applied:
System.out.println(this)
Note that without the toString()
call, the code semantics might be different: if the expression is null,
then the null
string will be used instead of throwing a NullPointerException
.
Use the Report only when qualifier is known to be not-null option to avoid warnings for the values that could potentially be null.
Removing the explicit toString()
in these cases will change the runtime semantics
from throwing a NullPointException
to silently accepting the value when it is null
.