gpt4 book ai didi

java - 最后使用的最佳实践? (不用于释放资源)

转载 作者:行者123 更新时间:2023-12-01 23:28:37 25 4
gpt4 key购买 nike

开始;仅仅因为一个人可以做到这一点并不总是意味着一个人应该做到这一点。我将使用代码片段来解释我的问题:

private StringBuffer sb = new StringBuffer(); //Using StringBuffer because it is thread safe

... /*append to sb in methods etc*/ ...

public String getSbValue() {
try {
return sb.toString();
} finally {
sb = new StringBuffer(); //or sb.delete(0, sb.length()); ?
}
}

这是一种好的做法还是坏的做法,或者两者都不是?

或者我应该这样做:

public String getSbValue() {
String ret = sb.toString();
sb = new StringBuffer(); //or sb.delete(0, sb.length()); ?
return ret;
}

最诚挚的问候,

安德烈

最佳答案

这显然是非常主观的。我个人发现使用 finally 的非常短的方法的逻辑很难理解。

在我看来,以下内容更清楚:

public String getSbValue() {
StringBuffer prev_sb = sb;
sb = new StringBuffer();
return prev_sb.toString();
}

(您的第二个示例虽然与我上面的代码类似,但有所不同,并且与您的第一个示例具有不同的语义。)

附注几乎可以肯定,您应该使用 StringBuilder 代替 StringBuffer

关于java - 最后使用的最佳实践? (不用于释放资源),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19651368/

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