String.repeat()
method (available since Java 11).
Example:
void append(StringBuilder sb, int count, Object obj) {
for (int i = 0; i < count; i++) {
sb.append(obj);
}
}
After the quick-fix is applied:
void append(StringBuilder sb, int count, Object obj) {
sb.append(String.valueOf(obj).repeat(Math.max(0, count)));
}
By default, the inspection may wrap count
with Math.max(0, count)
if it cannot prove statically that count
is
not negative. This is done to prevent possible semantics change, as String.repeat()
rejects negative numbers.
Use the Add Math.max(0,count) to avoid possible semantics change option to disable this behavior if required.
Similarly, a string you want to repeat can be wrapped in
String.valueOf
to prevent possible NullPointerException
if it's unknown whether it can be null
.
This inspection only reports if the language level of the project or module is 11 or higher.
New in 2019.1