使用 + 连接字符串总是一个坏主意吗?

我有如下代码:

String s = "";
for (My my : myList) {
    s += my.getX();
}

Findbugs总是在我这样做时报告错误。


答案 1

如果您手动连接,我会使用,+

String word = "Hello";
word += " World!";

但是,如果您正在迭代和连接,我建议使用StringBuilder

StringBuilder sb = new StringBuilder();
for (My my : myList) {
    sb.append(my.getX());
}

答案 2

String 对象在 Java 中是不可变的。每个 + 表示另一个对象。您可以使用 StringBuffer 来最大程度地减少创建的对象数量。