性能 - 方法在循环中使用+连接字符串

jam*_*mes 3 java sonarqube

我在这行代码中遇到了这个问题,即使我在循环中使用.append().

for (final FieldError fieldError : result.getFieldErrors()) {
    errors = new StringBuilder(errors).append(fieldError.getField()).append(" - ")
     .append(getErrorMessageFromProperties(fieldError.getCode())).append("*").toString();
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

Ruc*_*era 7

您可以StringBuilderfor循环外创建并重用它.

StringBuilder sb=new StringBuilder();
for (final FieldError fieldError : result.getFieldErrors()) {
      sb.append(fieldError.getField())
           .append(" - ")
           .append(getErrorMessageFromProperties(fieldError.getCode()))
           .append("*");
 } 
Run Code Online (Sandbox Code Playgroud)

在追加所有内容后,sb您可以致电

 String error=sb.toString()
Run Code Online (Sandbox Code Playgroud)

就在for循环之后