Я только начал изучать потоки Java и столкнулся с проблемой. Пожалуйста, взгляните на следующий пример. Это часть класса узла:
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. Я был бы признателен за решения, отличные от решения с оператором ->
.
Можно ли как-то использовать ссылку на метод вместе с параметром? Мне нравится идея потоков, и я просто хочу сделать код более читабельным.
На самом деле, я думаю, что есть похожий вопрос ссылки на метод с параметром, который я читал, но не могу понять, как использовать метод bind2 в моем коде. Это единственное решение?