gpt4 book ai didi

java - 在 Java 中使用 StringBuffer 和 StringBuilder 作为方法返回类型

转载 作者:行者123 更新时间:2023-11-29 04:11:52 26 4
gpt4 key购买 nike

在 Java 中使用 StringBuilder 或 StringBuffer 作为方法的返回类型是个坏主意吗?我经常从 Java 方法返回 String 作为返回类型,但从来没有返回 StringBuilder 或 StringBuffer,即使我在方法中使用它们完成了操作。

如果建议不要使用 StringBuilder 和 StringBuffer 作为方法返回类型,谁能告诉我吗?若否,原因为何?原因之一可能是这两个是可变的。但是它有什么不同,因为我们经常使用其他派生类型作为可变的方法返回类型。

有人可以用代码解释使用 StringBuffer 和 Builder 作为方法返回类型的缺点(如果有的话)吗?

最佳答案

StringBuffer 是旧的并且被 StringBuilder 取代以提高速度。

返回 StringBuilder 可能是一种糟糕的风格:有时将 StringBuilder 作为参数传递会更好。比较:

[best] 作为参数:

void dump(StringBuilder sb) {
sb.append(name);
for (Foo child : children) {
child.dump(sb);
}
}

[无问题,低效] 与聚合的不可变值比较:

String toString() {
return name + left.toString() + right.toString();
}

[丑陋] 与返回可变值的比较:

StringBuilder dump() {
StringBulder sb = new StringBuilder();
for (Foo child : children) {
sb.append(child.dump()); // Inefficient
}
return sb;
}

关于java - 在 Java 中使用 StringBuffer 和 StringBuilder 作为方法返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54628163/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com