我刚开始学习Java流并遇到了一个问题。请看下面的例子,代码是Node类的一部分:
private Map<String, Node> nodes;
public Optional<Node> child(String name) {
return Optional.<Node>ofNullable(nodes.get(name));
}
private void findChildren(String name, List<Node> result) {
child(name).ifPresent(result::add);
nodes.values().stream()
// .map(Node::findChildren(name, result))
// .forEach(Node::findChildren(name, result))
.forEach(node -> node.findChildren(name, result));
}
我的意图是对流中的每个节点使用名称和结果参数调用#findChildren。我尝试使用Node :: findChildren方法引用,但没有成功。我会欣赏其他解决方案而不是使用->
运算符。
有没有可能在方法引用中同时使用参数?我喜欢流的想法,我只想使代码更易读。
实际上,我认为有一个类似的问题Method references with a parameter,我已经阅读了它,但无法弄清如何在我的代码中使用bind2方法。这是唯一的解决方案吗?