cod*_*ker 5 java instance guava
Guava 包含用于拆分和连接字符串的实用程序,但它需要实例化 Splitter/Joiner 对象才能这样做。这些是通常只包含要拆分/加入的字符的小对象。维护对这些对象的引用以便重用它们是一个好主意,还是只在需要时创建它们并让它们被垃圾收集更好?
例如,我可以通过以下两种方式实现此方法:
String joinLines(List<String> lines) {
return Joiner.on("\n").join(lines);
}
Run Code Online (Sandbox Code Playgroud)
或者
static final Joiner LINE_JOINER = Joiner.on("\n");
String joinLines(List<String> lines) {
return LINE_JOINER.join(lines);
}
Run Code Online (Sandbox Code Playgroud)
我发现第一种方法更具可读性,但每次调用该方法时都创建一个新的 Joiner 似乎很浪费。
老实说,这对我来说听起来像是过早的优化。我同意@Andy Turner 的观点,编写最容易理解和维护的内容。
Joiner.on("\n")如果您打算在几个地方使用,请使其成为一个命名良好的常量;选择选项二。
如果您只打算在您的方法中使用它joinLines,那么常量似乎过于冗长;选择选项一。