什么是空集合的连接结果

时间:2014-11-28 12:45:05

标签: guava

我想知道,如果给出一个空的集合,Joiner.join究竟会如何表现:

Joiner.on(",").join(new ArrayList());

我想知道,这里的预期行为是什么。它会返回一个空字符串还是null?或者它取决于库的平台和实现?

1 个答案:

答案 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。所以,结果是空字符串。