我在这行代码中遇到了这个问题,即使我在循环中使用.append()。
for (final FieldError fieldError : result.getFieldErrors()) {
errors = new StringBuilder(errors).append(fieldError.getField()).append(" - ")
.append(getErrorMessageFromProperties(fieldError.getCode())).append("*").toString();
}
我该如何解决这个问题?
答案 0 :(得分:7)
您可以在StringBuilder
循环之外创建for
并重复使用。
StringBuilder sb=new StringBuilder();
for (final FieldError fieldError : result.getFieldErrors()) {
sb.append(fieldError.getField())
.append(" - ")
.append(getErrorMessageFromProperties(fieldError.getCode()))
.append("*");
}
将所有内容追加到sb
后,您可以致电
String error=sb.toString()
在for
循环
答案 1 :(得分:1)
每次要读取数据库表时,都使用循环。随着数据库表的增长,循环中的迭代次数也相应增加。因此,您希望避免迭代中的任何操作,这些操作在性能方面可能成本很高。此外,这是一种在质量保证期间或应用程序年轻时无法检测到的缺陷,其中包含一个记录很少的测试数据库。
避免在循环中进行字符串连接,在内存中创建对象等。