【发布时间】:2015-12-29 06:20:54
【问题描述】:
我想知道 StringBuffer 的这种使用是否与我之前的代码一样,因为 SonarQube 要求我不要使用 += 来附加字符串。
我之前的代码:
String sign = "";
if (value < 0) {
sign.append("-");
}
我使用 StringBuffer 的新代码:
StringBuffer sign = new StringBuffer();
sign.append("");
if (value < 0) {
sign.append("-");
}
这样更好吗?
感谢您的建议。
【问题讨论】:
-
第三路:
StringBuilder. -
我应该使用
StringBuilder而不是StringBuffer吗? Sonar 顺便推荐第二个。 -
等等,什么? Sonar 从什么时候开始推荐使用 StringBuffer 而不是 StringBuilder?
-
宁可使用
StringBuilder,这为您提供了更多功能,它们只是String,并且由于StringBuffer被设计为线程安全的,它的性能将比StringBuilder差很多(不是线程安全的) ) -
嗯,一个产生编译时错误,另一个有效。 (
String类中没有append方法)。它也不会那样工作,因为字符串是不可变的(例如,如果您使用concat,则会返回一个新字符串)。
标签: java string append sonarqube stringbuffer