Java-函数式接口

函数式接口: 
有且仅有一个抽象方法的接口
适用于函数式编程的接口        (适用于Lambda表达式的接口)


@FunctionalInterface        //检测接口是否是一个函数式接口


函数式接口的使用:一般可以作为方法的参数和返回值类型

Lambda表达式不生成.class       (提高加载效率)
Lambda表达式作参数:延迟加载    (节省性能)


常用函数式接口:
Supplier        Consumer
Predicate       Function
Supplier接口
java.util.function.Supplier<T>

无参方法:T get()
用来获取一个泛型参数指定类型的对象数据

Supplier<T>接口被称为生产型接口:
指定接口的泛型是什么,get方法就产生什么类型的对象数据
Consumer接口
java.util.function.Consumer<T>接口

抽象方法:void accept(T t)
意为消费一个指定泛型的对象数据

Supplier<T>接口被称为消费型接口:
泛型是什么类型,accept方法就消费什么类型的对象数据
至于怎么消费(使用),需要自定义(输出,计算...)

默认方法:andThen()
作用:需要两个Consumer接口,可以把两个Consumer接口组合到一起,再对数据进行消费
例:
Consumer<String> con1
Consumer<String> con2
String s="hello";
con1.accept(s);
con2.accept(s);
<==>            连接两个Consumer接口再消费
con1.andThen(con2).accept(s);   //谁写前面谁先消费
Predicate接口
java.util.function.Predicate<T>接口
作用:对某种数据类型的数据进行判断,结果返回一个boolean值

抽象方法:boolean test(T t)
对指定数据类型进行判断,符合条件返回true,否则返回false

默认方法:and()
表示并且关系    &&
例:
pre1.test(s)&&pre2.test(s);
<==>
pre1.and(pre2).test(s);

默认方法:or()
表示或者关系    ||

默认方法:negate()
表示取反/非     !
Function接口
java.util.function.Function<T t>接口

抽象方法:R apply(T t)
根据类型T的参数获取类型R的结果

Function<T t>接口被称为转换类型接口


默认方法:andThen()
用来进行组合操作
int in = fun1.apply(s);
String str = fun2.apply(in);
<==>
String str = fun1.andThen(fun2).apply(s);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值