美文网首页
44 方法引用

44 方法引用

作者: ca8519be679b | 来源:发表于2020-05-14 11:03 被阅读0次

简单介绍方法引用,当我们的lambda表达式的函数体是已经某个模块某函数实现过了,我们可以使用方法引用

1 2

如上2图,我们自定义接口MyPrint作为函数式接口,然后主类里定义调用接口的方法,最后main里使用lambda表达式,效果如上,我们知道System.out都是已有的对象,println是其已有的方法

3

我们就可以尝试如上的使用System.out::println作为lambda表达式的替代,这2个冒号表示方法引用,这里需要注意的是lambda表达式的参数必须是方法引用可接收的参数,否则会报错

通过对象名和成员方法引用

4

还是针对上个代码,我们定义个类,里面定义方法,将输入字符串变成大写打印,

5

然后我们在Main方法里创建对象,因为对象创建,他就有其成员方法,我们就可以将引用传给接口,如上,实现了大写打印

通过类名引用静态方法

6

还是上个类,我们修改方法为静态方法,

7

然后main中使用这个类作为::左侧即可

使用super引用父类的成员方法

8

注意这里主类不是Demo了,而是Son,继承了Method,toUpper方法我们这里是非静态的,然后我们定义传入接口的方法fun,show方法调用,传入引用,这里我们就可以使用super::来引用了,效果如上

通过this引用本类成员方法

9

感觉没什么说的,我们之前已经子类将方法复写成实现小写输出,show里使用this::upper实现本类引用

类的构造器引用

使用  类名::new

10

我们定义Person类,定义构造方法和默认方法,

11

为了使用引用,需要创建接口,我们将接口作为创建人物使用,返回Person对象

12

在主类里定义方法,可以传入接口,我们根据传入接口和字符串创建Person对象,main调用时就可以使用类名::new引用

数组构造体引用

13

还是创建一个接口,根据我们传入的长度,创建int类型数组

14

我们先不使用引用,主类方法里定义createArray调用接口,返回int[],main方法里调用,我们使用lambda表达式即可创建指定长度数组,但是int[]本身是已知对象,所以我们可以使用构造方法

15

如上,当然你肯定好奇这个10是怎么传递到new里的,,我也不知道

。。。。

到此为止javaSE课程就已经OVER了

相关文章

  • 44 方法引用

    简单介绍方法引用,当我们的lambda表达式的函数体是已经某个模块某函数实现过了,我们可以使用方法引用 如上2图,...

  • 2020-07-04【方法引用】

    体验方法引用 方法引用符 引用方式

  • Java8——方法引用和构造器引用

    方法引用和构造器引用 方法引用 若Lambda体中的内容已经有方法实现过了,我们可以使用方法引用(方法引用是Lam...

  • 双冒号方法引用

    类别使用形式静态方法引用类名 :: 静态方法名实例方法引用对象名(引用名) :: 实例方法名类方法引用类名 :: ...

  • Java中的双冒号::是什么玩意?有这个语法?

    简洁 方法引用 Optional 可选值 一:简洁 方法引用分为三种,方法引用通过一对双冒号:: 来表示,方法引用...

  • 3.Java8新特性 - 方法引用与构造器

    一.方法的引用 方法引用是用来直接访问类或者实例的已经存在的方法或者构造方法。方法引用提供了一种引用而不执行方法的...

  • jdk8 方法引用

    方法引用 方法引用可看作一个“函数指针” function pointer 方法引用分为4类 1,类名::静态方法...

  • 方法引用

    1.什么是方法引用 方法引用是java8中特定情况下简化lambada表达式的一种语法糖,这里的特定情况是指当调用...

  • 方法引用

    方法引用(Method References) 声明:java8新特性系列为个人学习笔记,参考地址点击这里,侵删!...

  • 方法引用

    1.1 方法引用体验 方法引用出现的原因 在使用Lambda表达式的时候,我们实际上传递进去的代码就是一种解决方案...

网友评论

      本文标题:44 方法引用

      本文链接:https://www.haomeiwen.com/subject/qengnhtx.html