Мне просто интересно, какой лучший способ применить функцию, которая возвращает Void
на Iterable/Collection
?
У меня есть:
- У меня есть список объектов
Animal
- Я хочу вызвать у каждого животного списка функцию
eat()
У меня есть Function<Animal,Void>
, который вызывает input.eat();
Оказывается, когда я звоню:
Collections2.transform(animalList,eatFunction);
Я не считаю это очень элегантным, так как я не ищу преобразования, но только для приложения без вывода. Хуже того, это даже не работает, поскольку преобразования Guava возвращают представления.
Что хорошо работает:
Lists.newArrayList( Collections2.transform(animalList,eatFunction) );
Но это не изящно. Каков наилучший способ применения функции Void к Iterable/Collection, функциональным способом с помощью Guava?
Изменить:
- Связанный с этим вопрос: Обратный поставщик <T> в Гуаве
- Также, как указывает Дзик, если вы используете Java8 вместо Guava, то класс Consumer: qaru.site/info/482675/...