String.repeat()
方法的循环 (自 Java 11 起提供)。
示例:
void append(StringBuilder sb, int count, Object obj) {
for (int i = 0; i < count; i++) {
sb.append(obj);
}
}
在应用快速修复后:
void append(StringBuilder sb, int count, Object obj) {
sb.append(String.valueOf(obj).repeat(Math.max(0, count)));
}
默认情况下,如果不能静态地证明 count
非负,则该检查可以使用 Math.max(0, count)
来包装 count
。 这样做的目的是防止可能发生的语义更改,因为 String.repeat()
拒绝负数。
必要时,可使用添加 Math.max(0, count) 以避免可能的语义变更选项禁用此行为。
同样,如果不知道要重复的字符串能否为 null
,可将其包装在 String.valueOf
中,以防止可能发生的 NullPointerException
。
此检查仅报告项目或模块的语言版本是否为 11 或更高。
2019.1 的新功能