Как я могу написать с помощью Java 8 с закрытием, поддерживает метод, который принимает как аргумент функции и возвращает функцию как значение?Лямбда-выражения и функции более высокого порядка
ответ
В Java Lambda API основным классом является java.util.function.Function.
Вы можете использовать ссылку на этот интерфейс так же, как и со всеми другими ссылками: создать это как переменную, вернуть ее в результате вычислений и т. Д.
Вот довольно простой пример, который может помочь вам:
public class HigherOrder {
public static void main(String[] args) {
Function<Integer, Long> addOne = add(1L);
System.out.println(addOne.apply(1)); //prints 2
Arrays.asList("test", "new")
.parallelStream() // suggestion for execution strategy
.map(camelize) // call for static reference
.forEach(System.out::println);
}
private static Function<Integer, Long> add(long l) {
return (Integer i) -> l + i;
}
private static Function<String, String> camelize = (str) -> str.substring(0, 1).toUpperCase() + str.substring(1);
}
Если вам нужно передать более 1 параметр, пожалуйста, посмотрите в compose
метод, но его использование довольно сложно.
В целом, по моему мнению, закрытие и лямбда в Java - это в основном синтаксис-сахар, и у них, похоже, нет всех возможностей функционального программирования.
большое спасибо за ответ! Знаете ли вы, применимо ли это: добавьте (8) (10), потому что это очень скучно: add (8) .apply (10) – xdevel2000
К сожалению, кажется, что это запрещено, по крайней мере - сейчас – n1ckolas
n1ckolas, извините меня , Я не нахожу какой-либо метод компоновки ... где я могу найти пример для записи функции с большим количеством параметров? – xdevel2000
- 1. Функции более высокого порядка
- 2. Уточнение функции более высокого порядка
- 3. C++ функции более высокого порядка
- 4. Функции более высокого порядка VBScript
- 5. Производные функции более высокого порядка
- 6. Функции javascript более высокого порядка
- 7. Javascript Функции более высокого порядка и DOM
- 8. Regex более высокого порядка
- 9. Функция более высокого порядка
- 10. Унификация более высокого порядка
- 11. Производные более высокого порядка
- 12. функции более высокого порядка в haskell
- 13. Пример объяснения функции более высокого порядка scala
- 14. Функции более высокого порядка с шаблонами?
- 15. Eloquent Javascript: Функции более высокого порядка
- 16. «фильтр» функции более высокого порядка в C++
- 17. Предикаты более высокого порядка
- 18. Функции более высокого порядка в Python
- 19. Scala Функции более высокого порядка в деталях
- 20. Python: функции более высокого порядка с методами
- 21. Hacklang Функции более высокого порядка для коллекций
- 22. Как работают функции более высокого порядка Kotlin?
- 23. Функции более высокого порядка в SML/NJ
- 24. Функции более высокого порядка в обходе дерева
- 25. flowtype - функции более высокого порядка - каррирование
- 26. Объясните это поведение функции более высокого порядка
- 27. Функции более высокого порядка - Красноречивый JS
- 28. Получение функции более высокого порядка в Scala
- 29. Как эффективно использовать функции более высокого порядка?
- 30. Функции более высокого порядка в Javascripts
[Закрытие для спецификации проекта Java (Нил Гафтер и Питер фон-ам-Ахе)] (http://javac.info/) –
@Quoi Этот сайт относится к предложениям, которые умерли много лет назад. Для продвижения к реализации Java 8 см. Http://lambdafaq.org –
@MauriceNaftalin спасибо –