Java 8 にはクラス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)) { ... }
ここで何か不足していますか?