lambda表达式是java的从传统的oop(面向对象)编程和接口编程向函数式编程的一个拓展延伸,也是Java可塑强的一个重要表现,lambda与匿名内部类相似本质上是对匿名内部类的间化代码工具
lambda表达式是由函数式接口实现的推导公式,简化代码,延迟执行提高程序的效率和可维护性,注:在Java中lambda表达式只适用于函数式接口,非函数式接口lambda无法推导
函数式接口把java的定义从做什么怎么做,到为什么这么做的其他优化方案
自定义函数式接口
函数式接口:只一个抽象方法的接口(可以通过注解@FunctionalInterface判断是否为函数式接口)
http://wql.luoqin.ltd/wp-content/uploads/2020/05/自定义函数式接口.png
lambda的延时性加载
http://wql.luoqin.ltd/wp-content/uploads/2020/05/延时性.png
java的四大函数式接口
java的函数式接口都在Java.util.function下
http://wql.luoqin.ltd/wp-content/uploads/2020/05/function.png
供给型接口:Supplier<T>
消费型接口:Consumer<T>
函数式接口:Function<T,R>
断言型接口:Predicate<T>
Supplier<T>:生产一个指定类型的数据(get),给定一个泛型
get方法:生产一个指定数据
Consumer:消费给定数据(andThen,accept)
andThen:连接方法 例:Consumer A,Consumer B;A.andThern(B).accept A和B并没有相关性,A的消费结果并不会影响B
Function<T,R>:类型转换函数式接口(addThen,apply),给定一个初始泛型T和转换泛型R
注:addThen连接对象是转递性的(A的结果会交给B,B再做处理)
Predicate<T>:段言型接口(判断型接口),返回Boolean值(test,or,and,netage)
or,and,netage:分别是多分支逻辑判断或,且,非(与andThen相比,除了连接还有一个判断)
Comments | NOTHING
Warning: Undefined variable $return_smiles in /www/wwwroot/wql_luoqin_ltd/wp-content/themes/Sakura/functions.php on line 1109