System.out::println是什么 ? Lambda表达式和方法引用

System.out::printlin 可以很好的串联Java8新特性中的Lambda表达式和方法引用

        List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);

        //完成对集合元素的遍历输出
        list.forEach(System.out::println);

  1. 首先用Lambda体简化匿名内部类
  2. 了解函数式接口的概念
  3. 方法引用的用法
  4. Consumer<T> 的场景
  5. 引出函数式编程
  6. System.out::println

链条式引出结果, 并非完整文档笔记.

从匿名内部类 到 Lambda

Lambda本质就是一种书写方式 , 他的整体就是一个对象

匿名内部类写法

假如要创建接口对象, 一种方式就是写成匿名内部类 ,
这里匿名的说法, 描述的是不必专门写一个类来继承Runnable , 进而去new对象, 再去调用这个类重写的run方法

        Runnable runnable = new Runnable() {
   
            @Override
            public void run() {
   
                System.out.println("这是runnable");
            }
        };

Lambda写法

. 匿名内部类这种方式过于复杂, 可以写成Lambda的格式进行优化

        Runnable runnable1 = () -> {
   
            System.out.println("这是runnable2");
        };

在这里插入图片描述
相当于将 new Runnable() 和 除了方法内的代码给省略
( ) 就是run( ) 的参数表, 接口名方法名都省了.

更简化的Lambda

当这个方法体中只有一行代码时, 可以直接省略{}括号

        Runnable runnable2 = () -> System.out.println("这是runnable2");

所以Lambda体在Java中是对象

在其它语言中Lambda体或者称之为箭头函数./回调函数, 但在Java中很明显Lambda体是对象, 就是函数式接口的一个对象

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值