函数式接口

一、函数式接口

有且仅有一个抽象方法;

 2、匿名内部类也会产生class文件,类加载时候就要消耗jvm资源,lambda表达式不会,所以效率高;

3、性能浪费的日志案例

 

 

 使用lambda表达式优化

 

 方法的参数列表第二个参数是一个函数式接口,只含有一个抽象方法;

 

 

 

 4、runnable接口实例:函数式接口,只有一个run方法;

 

 

 

 有且仅有一个参数时候,参数括号可以省略;方法体只有一行代码,花括号和分号和return要一起省略;

5、函数式接口作为方法的返回值

排序,comparator接口,函数式接口,只含有一个compare抽象方法;后面 - 前面,则是降序;

 

 调用:

 

 Arrarys是数组的工具类,

 

 降序,大的在前面;

6、util.function包下的常用函数式接口:supplier接口

 

 使用supplier求数组中最大值

 

 

 

 7、Comsumer接口

 

 

 

 字符串缓冲区可以反转字符串内容:;

 

 Comsumer函数式接口的默认方法 default andThen():

 

 

 

 8、Comsumer消费数据接口练习:

写处理方法供调用:

 

调用方法:传入的是lambda表达式,代替接口的匿名对象或者实现类的方式,方法体中就是重写函数式接口那个唯一的抽象方法的方法体:

 

 9、Predicate接口的唯一抽象方法Test方法,boolean判断:

 

 值是一个boolean值;

 

 9.2、Predicate接口的默认方法:and用法:

 

 9.3、默认方法or方法;

9.4、Predicate函数式接口取反用法:唯一抽象方法是negate():

 10、Function函数式接口,转换数据类型:

 

定义后的调用:

 

 

 11、Function接口综合用法:

 

 

 

posted @ 2019-08-19 00:16  wmqiang  阅读(234)  评论(0编辑  收藏  举报