为什么 Stream<T> 不实现 Iterable<T>?
2022-08-31 05:08:36
在Java 8中,我们有Class Stream<T>,奇怪的是它有一个方法。
Iterator<T> iterator()
因此,您会期望它实现接口 Iterable<T>,这恰恰需要此方法,但事实并非如此。
当我想使用 foreach 循环循环遍历 Stream 时,我必须执行类似操作
public static Iterable<T> getIterable(Stream<T> s) {
return new Iterable<T> {
@Override
public Iterator<T> iterator() {
return s.iterator();
}
};
}
for (T element : getIterable(s)) { ... }
我在这里错过了什么吗?