Jak utworzyć strumień z pojedynczego obiektu? Taka podstawowa operacja okazała się problematyczna w strumieniu API. Aby zilustrować, chciałbym zakończyć następujące metody sensownieUtwórz strumień <T> z pojedynczego obiektu
private Node parent;
private List<Node> children;
public Stream<Node> getFilteredNodes(Options o) {
if(o.findParent()/*special case*/) return /*??? stream containing just parent*/;
return children.stream().filter(x -> x.getName().equals(o.getQuery()));
}
lub innymi słowy, chciałbym coś takiego LINQs return Enumerable.Repeat(parent,1);
. Chociaż przechowywanie parent
na liście z pojedynczym elementem działałoby, to również komplikowałoby inną logikę, więc wolałbym używać wbudowanych metod.
chodzi o to, czego potrzebuję go - konsystencji Search API, więc mogę szukać w górę iw dół hierarchii (i połączyć oba) z tych samych wywołań metod, rurociągi go do następnego etapu.
["Stream.of (parent)"] (https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#of-T-) ... ? – khelwood
tak, dokładnie to, czego szukałem – wondra