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/

10-09 20:49