Java 函数接口

现象:

Consumer功能接口

  • 用来作为lambda表达式或方法引用的任务目标——传递一个参数执行指定的方法
  • 是一个接受单一参数并且不返回任何结果的操作

实现:

1:forEach 参数接收的就是Consumer接口
在这里插入图片描述
2:forEach的调用 传入的就是 accept方法的实现
在这里插入图片描述
3:分开实现演示 先创建consumer接口 实现accept方法
在传入forEach方法
在这里插入图片描述

4:Consumer 接口源码 只有两个方法 accept 和 andThen
在这里插入图片描述

实例:

1.Consumer accept 的简单使用
创建方法 testConsumer方法 接收value 和函数consumer 函数调用accept执行
给参数name 789 拼接参数 -123
在这里插入图片描述
2.Consumer andThen的简单使用
函数先执行了accept 然后在执行了andThen
accept 拼接 -123
andThen 拼接 -456
打印结果 先打印789-123 然后才是 789-456

在这里插入图片描述**源码:**先执行了accept 在这里插入图片描述

代码实现:

  private static void consumerTest() {
        // 使用consumer接口实现方法
        Consumer<String> consumer = new Consumer<String>() {
            public void accept(String s) {
                System.out.println(s);
            }
        };

        List<String> list = List.of("111", "222", "333", "444", "555");
        list.forEach(consumer);
        System.out.println("============================================");



        // 使用lambda方法实现
        Consumer<String> c = (s) -> System.out.println(s);
        list.forEach(c);
        System.out.println("============================================");


        // ::  方法实现
        Consumer<String> d = System.out::println;
        list.forEach(d);
    }

supplier接口

提供一个泛型容器 和get方法
get方法获取内容

1:源码 只有一个get方法
在这里插入图片描述

实现

1:使用supplier接口实现方法
创建一个 Supplier 对象,实现了一个 get 方法,
get方法无参数,返回一个值

Supplier<String> supplier = new Supplier<>() {
    @Override
    public Integer get() {
        return "字符串返回";
    }
};

2:使用lambda表达式实现

// lambda表达式实现
Copier<Integer> integerCopier = () -> new Random().nextInt();

System.out.printf("lambda实现:"+supplier.get());
System.out.println("============================================");

3:使用 :: 实现

// ::  方法实现
Copier<Double> random = Math::random;
System.out.printf("lambda实现:"+supplier.get());

实例:

1:创建一个方法 参数是Supplier
调用get方法打印
在这里插入图片描述

2:调用方法传入一个新的Supplier接口 实现get方法 返回字符串 123456
在这里插入图片描述
3:结果
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值