标签:比较 ESS 表达式 部分 有用 view 函数式编程 apply 返回值
0 有用部分
1 函数式编程简介
2 函数式编程和lambda的关系
3 lambda表达式应用范围
4 lambda应用的五个案例
5 函数式编程应用条件
6 提出问题
4 lambda应用的五个案例
5 函数式编程应用条件
6 提出问题
本节主要介绍了lambda的使用方式,具体demo参照2-10 和2-15
函数式编程是一种不同的编程思想,定义函数作为公民,可以赋值给变量,作为参数或者返回值来传递
为了向scala,haskell语言看齐
lambda是 java引入函数式编程的一种革命性的尝试。
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);
◆接口中只有一个抽象方法(必看)(一个接口中有多个方法的还是不要用了,感觉好不方便啊,如果完全面向函数式编程,需要把接口中的多个方法拆成了很多的小方法,还是两种编程方法结合着用比较好)
◆Java8的函数式接口注解:@FunctionInterface(可加可不加,只是为了校验是否符合lambda规则)
◆函数式接口的抽象方法签名:函数描述符
一个接口中有多个方法的还是不要用了,感觉好不方便啊,如果完全面向函数式编程,需要把接口中的多个方法拆成了很多的小方法,还是两种编程方法结合着用比较好。
问题:如果原来一个接口A中只有一个抽象方法B,我C,D,E等多个类都用了lambda表达式,以后接口A中加了一个抽象方法F,那么引用A接口的C,D,E类是不是都要同步改造?
针对这种情况,有没有好的解决方法?
高效 告别996,开启java高效编程之门 2-8实战:判断逻辑参数化-Lambda表达式
标签:比较 ESS 表达式 部分 有用 view 函数式编程 apply 返回值
原文地址:https://www.cnblogs.com/1446358788-qq/p/12630231.html