新闻资讯
看你所看,想你所想
当前位置:首页 > 数码 > Java Lambda 在Java8 中有哪些特殊引用呢

Java Lambda 在Java8 中有哪些特殊引用呢

Lambda 是 Java 8 的新特性,基本使用比较容易理解,但有一个环节遇到了坎儿,那就是方法引用,尤其是类的实例方法引用,烧脑之后总结一下。

在需要函数参数的方法中,我们可以把另一个同类型的方法直接传入,这称为方法引用的绑定。类似于C语言中的函数指针。

lambda表达式可以替代方法引用;或者说方法引用是lambda的一种特例,方法引用不可以控制传递参数。

成员方法引用

so easy,只要成员方法的参数列表和FI需要的参数一致就可以

构造器引用

需要有无参的构造器。

静态方法引用

so easy,只要成员方法的参数列表和FI需要的参数一致就可以。

类的任意对象的实例方法引用(很怪异)

前方高能,请关掉耳机的音乐,认真思考,小心行事。

传统的java开发中,是不允许使用类名去调用成员方法的,这是一个基本原则,那么这里的这种写法就有点不太容易理解了。还是用实例说明:

用到的内部类:

测试代码:

小结

小结一下:

烧脑分析类的实例方法省略了哪个参数

前面的例子,FI的两个参数是同一个类型,如果类型不同呢?省略了哪个参数呢?

是按照位置省略了第一个,亦或者是省略了最后一个?

还是按照类型自动去对应,而不关心第几个呢?

这个时候,我们能想到的办法可能是去看源码,但是一般看代码没有个把礼拜甚至更长,毛都看不出来。

转载请保留本文连接:http://www.nanchongquan.com/shuma/1498149401528312.html

百度搜索一下懒~虫~圈 » Java Lambda 在Java8 中有哪些特殊引用呢

分享: