ps: 目前阅读学习《Java 8 函数式编程》,本博文是阅读笔记,有意者可自行通过互联网进行资源获取,或者通过京东等购物网站进行正版购买;
概念 听说了很多函数式编程的 牛A、牛B、牛C 之处,说实话并不清楚函数式编程的本质是什么;百度看了百度百科也是云里雾里,引用一下书中的两处介绍
" 但其核心是:在思考问题时,使用不可变值和函数,函数对一个值进行处理,映射成另外一个值. "
" 和传入一个实现某接口的对象不同,我们传入了一段代码块—一个没有名字的函数."
button.addActionListener(event -> System.out.println("button clicked"));
在引用正确的前提下,在我看来重点是以下三点:
不可变值和函数 函数对一个值进行处理,映射成另外一个值 传入了一段代码块 Lambda 表达式的书写形式 空参传入 Runnable noArguments = () -> System.out.println("Hello World"); 参数传入 ActionListener oneArgument = event -> System.out.println("button clicked"); 代码块传入 Runnable multiStatement = () -> { System.out.print("Hello"); System.out.println(" World"); }; 创建函数传入 BinaryOperator<Long> add = (x, y) -> x + y; 创建函数传入, 声明参数类型 BinaryOperator<Long> add = (Long x, Long y) -> x + y; Java 8 中重要的函数接口 接口 参数 返回类型 示例 Predicate T boolean 唱片是否发行 Consumer T void 输出一个值 Function<T, R> T R 获得 Artist 对象的名字 Supplier None T 工厂方法 UnaryOperator T T 逻辑非(!...