根据Effective Java第2版,当你想编写一个允许使用可变参数但在编译时仍强制至少有一个元素的方法签名时,应该以以下方式编写方法签名:
public void something(String required, String ... additional) {
//... do what you want to do
}
如果我想要流式传输所有这些元素,我一直在执行类似这样的操作:
public void something(String required, String ... additional) {
Stream<String> allParams =
Stream.concat(Stream.of(required), Stream.of(additional));
//... do what you want to do
}
这种方法感觉非常不优雅和浪费,特别是因为我正在创建一个 1 的流并将其与另一个流连接起来。有没有更简洁的方法来做到这一点?
Spliterator<T>
并将其与StreamSupport.stream(spliterator, parallel)
一起使用,但我真的不认为这会使它更易读或更高效。 - ug_