【发布时间】:2017-02-16 13:31:42
【问题描述】:
如何从单个对象创建 Stream?这样的基本操作在流 API 中被证明是有问题的。为了说明,我想有意义地完成以下方法
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()));
}
或者换句话说,我想要像 LINQs return Enumerable.Repeat(parent,1); 这样的东西。尽管将parent 存储在一个包含单个项目的列表中是可行的,但它也会使其他逻辑复杂化,所以我更喜欢使用内置方法。
至于我需要它的用途 - 搜索 API 的一致性,因此我可以使用相同的方法调用搜索上下层次结构(并将两者结合起来),并将其传递到下一阶段。
【问题讨论】:
标签: java java-stream