tushao
不忘初心,无限更新流学习单位,总结每日学习资料,总结写代码中遇到的问题

方法引用:就是对lambda表达式中代码冗余现象的优化,优化lambda表达式
1.概念
在我们是哦用lambda表达式的时候其实传递的是一段解决问题的代码,给声明参数,做什么操作
2.lambda代码冗余现象
比如像打印一个内容:
1.先准备一个函数式接口,内含一个抽象方法
2.准备一个实现类,实现类里面有明确的操作方法,方法参数是之前定义的函数格式接口,函数式接口定义唯一一个抽象方法
3.格式:实现类里面的方法:(类对象::对象里面的方法)
3.方法引用符号
双冒号---->::---->写法称之为【方法引用】

方法引用使用场景
1.通过对象名的引用成员方法

  • 准备一个方法类
  • 准备一个函数式接口
  • 准备一个测试类
    1的代码演示

2.通过静态方法获取

  • 定义一个函数式接口
  • 静态方法,传入的参数是函数式接口
  • 使用方法引用优化lambda表达式
    2的代码演示

    注意:
    使用lambda表达式写法:d-->Math.abs(d)
    使用方法引用写法:Math::abs
    两者效果是一样的

3.通过super来引用成员方法
如果在存在继承关系,当lambda表达式需要使用super调用的时候也可以使用方法引用来优化lambda
其实本质就是谈过对象来调用
3的代码演示

4.通过this来的调用用
this指代当前对象,如果需要引用的方法是本类当中的成员方法,那么就不用new对象,直接使用【this::成员方法】
代码演示

5.类的构造器引用
由于构造器得名称和类名称一样,所以构造器得应用使用【类名称】
5的代码演示

6.数组的引用优化

为什么使用优化
如果使用lambda表达式根据【可推到可省略就可以省略的状态】。也无需指定重写的形式。------>他们都可以被推导出来,能够使用方法引用,同样也是可以更具傻瓜下文推导出来。

函数时接口时lambda得基础,而方法引用时lambda表达式得优化,所以函数时接口必须存在

posted on 2020-12-23 08:55  是涂绍啊  阅读(44)  评论(0编辑  收藏  举报