String.repeat() can be used
Reports loops that can be replaced with a single 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 ID
Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.
StringRepeatCanBeUsed
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
Here you can find the description of settings available for the String.repeat() can be used inspection, and the reference of their default values.
Inspection Details | |
---|---|
By default bundled with: | |
Can be installed with plugin: | Java, 243.23126 |
Thanks for your feedback!