0 有用部分
1 函数式编程简介
2 函数式编程和 lambda 的关系
3 lambda 表达式应用范围
4 lambda 应用的五个案例
5 函数式编程应用条件
6 提出问题
0 有用部分
4 lambda 应用的五个案例
5 函数式编程应用条件
6 提出问题
本节主要介绍了 lambda 的使用方式, 具体 demo 参照 2-10 和 2-15
1 函数式编程简介
函数式编程是一种不同的编程思想, 定义函数作为公民, 可以赋值给变量, 作为参数或者返回值来传递
2 函数式编程和 lambda 的关系
为了向 scala,haskell 语言看齐
lambda 是 java 引入函数式编程的一种革命性的尝试.
3 lambda 表达式应用范围
lambda 可以替代面向对象方式下的所有匿名函数, 通过行为参数化传递代码
4 lambda 应用的四个案例
◆(parameters)->expression
◆(parameters)->{statement;}
4.1 没有参数
()->System.out.println("Hello World!");
4.2 只有一个参数
- name->System.out.println(
- "Hello World from"+name+"!");
4.3 没有参数, 逻辑复杂
- ()->{
- System.out.println("Hello");
- System.out.println("World");
- }
4.4 包含两个参数的方法
- BinaryOperator<Long> functionAdd=(x,y)->x+y;
- Long result=functionAdd.apply(1L,2L);
4.5 对参数显示声明
- BinaryOperator<Long>functionAdd=(Long x,Longy)->x+y;
- Long result=functionAdd.apply(1L,2L);
5 函数式编程应用条件
◆接口中只有一个抽象方法 (必看)(一个接口中有多个方法的还是不要用了, 感觉好不方便啊, 如果完全面向函数式编程, 需要把接口中的多个方法拆成了很多的小方法, 还是两种编程方法结合着用比较好)
◆Java8 的函数式接口注解:@FunctionInterface(可加可不加, 只是为了校验是否符合 lambda 规则)
◆函数式接口的抽象方法签名: 函数描述符
6 提出问题
一个接口中有多个方法的还是不要用了, 感觉好不方便啊, 如果完全面向函数式编程, 需要把接口中的多个方法拆成了很多的小方法, 还是两种编程方法结合着用比较好.
问题: 如果原来一个接口 A 中只有一个抽象方法 B, 我 C,D,E 等多个类都用了 lambda 表达式, 以后接口 A 中加了一个抽象方法 F, 那么引用 A 接口的 C,D,E 类是不是都要同步改造?
针对这种情况, 有没有好的解决方法?
来源: http://www.bubuko.com/infodetail-3490754.html