函数式接口

函数式接口:有且仅有一个抽象方法的接口
适用于函数式编程场景的接口,可以使用与Lambda使用的接口。
格式:
修饰符 interface 接口名称{
public abstract 返回值类型 方法名称(可选参数信息);
}
使用场景:一般作为方法的参数和返回值类型

函数式编程
性能浪费的日志案例

public class Logger {
    public static void showLog(int level, String message) {
        if (level == 1) {
            System.out.println(message);
        }
    }

    public static void main(String[] args) {
        String msg1 = "hello";
        String msg2 = "world";
        String msg3 = "java";
        showLog(1, msg1 + msg2 + msg3);
    }
}

Consumer接口和Supplier接口相反,不生产数据而是消费一个数据,其数据类型由泛型决定

如果一个方法的参数和返回值全是Consumer类型,那么就可以实现效果:消费数据时,首先做一个操作,然后再做一个操作,实现组合。即Consumer接口中的default方法andThen
源码为:
在这里插入图片描述
Predicate接口
需要对某种类型的数据进行判断,从而得到一个boolean值结果,可以使用Predicate接口
Predicate接口中包含一个抽象方法:boolean test(T t)
在这里插入图片描述
条件判断会存在与,或,非三种常见的逻辑关系。
其中将两个Predicate条件使用“与”逻辑连接起来实现“并且”的效果时,可以使用default方法and (or,negate与之类似}
在这里插入图片描述
Function接口
用来根据一个类型的数据得到另一个类型的数据,前者称为前置条件,后者称为后置条件
抽象方法:apply
R apply(T t)根据类型T的参数获取类型R的结果

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值