报告循环中的字符串连接。

由于每个字符串连接都会复制整个字符串,因此通常最好将其替换为对 StringBuilder.append()StringBuffer.append() 的显式调用。

示例:

  String str = "";
  for(int i=0; i<10; i++) {
    str += i;
  }

在应用快速修复后:

  String str = "";
  StringBuilder strBuilder = new StringBuilder(str);
  for(int i = 0; i<10; i++) {
    strBuilder.append(i);
  }
  str = strBuilder.toString();

有时,通过快速修复可将 String 变量转换为 StringBuilder 或引入新的 StringBuilder。 原始代码专门处理 null 值时应小心,因为替换可能会改变语义。 如果可能为 null,建议进行 null 安全修复,生成必要的 null 检查。 此外,也不能保证自动替换总是性能更好。