今天安装了阿里的IDEA代码规约插件
在检查时发现了这个问题,它提示我尽量使用StringBuilder代替使用 “+” 来连接字符串,去百度了以下。
String messages = "";
for (ObjectError objectError : e.getBindingResult().getAllErrors()) {
messages += objectError.getDefaultMessage() + ",";
}
//会被编译器翻译成
for (ObjectError objectError : e.getBindingResult().getAllErrors()) {
messages = new StringBuilder(messages).append(objectError.getDefaultMessage()).toString();
}
应该这样写
String messages = "";
StringBuilder stringBuilder= new StringBuilder(messages);
for (ObjectError objectError : e.getBindingResult().getAllErrors()) {
stringBuilder.append(objectError.getDefaultMessage()).append(",");
}
messages = stringBuilder.toString();
上面优化后的写法,可以发现在运行时不用每次都生成新的StringBuilder对象,提高了性能。