这不是遗漏;2013年6月在EG清单上进行了详细讨论。
专家组的确切讨论源于此主题。
尽管似乎“显而易见”(即使是对专家组
stream()来说也是如此)似乎很有意义
Iterable,但
Iterable如此普遍的事实却成为一个问题,因为显而易见的签名是:
Stream<T> stream()
并非总是您想要的。例如,有些
Iterable<Integer>本来希望其流方法返回的东西
IntStream。但是,将这种
stream()方法放在层次结构中的较高位置将使其无法实现。因此,相反,我们把它很容易使一个
Stream从
Iterable,通过提供一个
spliterator()方法。
stream()in
的实现
Collection只是:
default Stream<E> stream() { return StreamSupport.stream(spliterator(), false);}
任何客户都可以通过以下方式从中获得所需的流
Iterable:
Stream s = StreamSupport.stream(iter.spliterator(), false);
最后,我们的结论是,加入
stream()到
Iterable将是一个错误。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)