As every String concatenation copies the whole
string, usually it is preferable to replace it with explicit calls to StringBuilder.append()
or
StringBuffer.append()
.
Example:
String str = "";
for(int i=0; i<10; i++) {
str += i;
}
After the quick-fix is applied:
String str = "";
StringBuilder strBuilder = new StringBuilder(str);
for(int i = 0; i<10; i++) {
strBuilder.append(i);
}
str = strBuilder.toString();
Sometimes, the quick-fixes allow you to convert a String
variable to a StringBuilder
or
introduce a new StringBuilder
. Be careful if the original code specially handles the null
value, as the
replacement may change semantics. If null
is possible, null-safe fixes that generate
necessary null-checks are suggested. Also, it's not guaranteed that the automatic replacement will always be more performant.