Guava包含用于拆分和连接字符串的实用程序,但是它需要实例化Splitter/Joiner对象。这些是小对象,通常只包含要在其上拆分/加入的字符。维护对这些对象的引用以重用它们是一个好主意,还是最好在需要时创建它们并让它们被垃圾回收?
例如,我可以通过以下两种方式实现此方法:
String joinLines(List<String> lines) {
return Joiner.on("\n").join(lines);
}
或者
static final Joiner LINE_JOINER = Joiner.on("\n");
String joinLines(List<String> lines) {
return LINE_JOINER.join(lines);
}
我发现第一种方法更具可读性,但是每次调用该方法时都创建一个新的Joiner似乎很浪费。
最佳答案
老实说,这对我来说听起来像是过早的优化。我同意@Andy Turner的观点,写出最容易理解和维护的内容。
如果您打算在几个地方使用Joiner.on("\n")
,请使其命名合理;选择第二种。
如果仅打算在joinLines
方法中使用它,则常量似乎太冗长;选择一。
关于java - 是否应在每次使用时创建 Guava 拆分器/联接器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42584477/