我想知道,如果给出一个空的集合,Joiner.join究竟会如何表现:
Joiner.on(",").join(new ArrayList());
我想知道,这里的预期行为是什么。它会返回一个空字符串还是null?或者它取决于库的平台和实现?
答案 0 :(得分:10)
好吧,检查来源:
public String join(Iterable<? extends Entry<?, ?>> entries) {
return join(entries.iterator());
}
下一步:
public String join(Iterator<? extends Entry<?, ?>> entries) {
return appendTo(new StringBuilder(), entries).toString();
}
最后(跳过一种方法):
public <A extends Appendable> A appendTo(A appendable, Iterator<? extends Entry<?, ?>> parts) throws IOException {
checkNotNull(appendable);
if (parts.hasNext()) {
...
}
return appendable;
}
如果您的收藏集为空appendTo()
,则会返回空StringBuilder
。所以,结果是空字符串。