Generate lazy Stream from method call in Java

Viewed 127

For example I have a method List<A> getA(), and I want to get a Stream<A> elements of which are the result of getA() call, but in such way that getA() will be called only when stream will be terminated with a collector. I have a couple ideas like:

Stream.of(() -> getA()).map(Supplier::get).flatMap(Collection::stream);

or

Stream.generate(() -> getA()).limit(1).flatMap(Collection::stream);

but maybe someone knows a more convenient approach. Thank you.

0 Answers
Related