Учитывая значение foo
и Stream
из Consumer<Foo>
функций void, какой самый краткий способ применить каждую функцию к значению? Прямо сейчас у меня есть
consumers.forEach(c -> c.accept(foo));
что не страшно, но я подозреваю, что есть способ вывернуть это наизнанку и сделать это только с помощью ссылок на методы (без явной лямбды). Возможно что-то с одноэлементным списком и zip()
?
Я был бы счастлив получить прямой ответ на Java 8 или Vavr или Scala.
(Обратите внимание, что это не свертка или, по крайней мере, не обычное _6 _ / _ 7_ приложение; если бы были возвращаемые значения, я бы отбросил их, а не повторял их.)
forEach
и функции void не используются в функциональных идиомах ... вы ищете то, чего не существует - person Mulan   schedule 29.11.2017functions.map(f -> f.apply(foo))
, если ты обнаружишь, что этого не существует. - person David Moles   schedule 29.11.2017map
создаст новую коллекцию, которую можно отправить другой функции;forEach
не имеет возвращаемого значения и поэтому не может быть составлен - функцииforEach
и void не работают - person Mulan   schedule 29.11.2017map
. - person David Moles   schedule 29.11.2017forEach
как с чем-то вроде эквивалента? - person Mulan   schedule 29.11.2017map()
является строгим расширениемforEach()
. Я был бы доволен решением, в котором используетсяmap()
. - person David Moles   schedule 29.11.2017