1.什么是方法引用?
把已经存在的方法拿过来用,当做函数式接口中抽象方法的方法体
2.方法引用的符号
:: (四个点)
3.方法引用的注意事项
1.需要有函数式接口
举个例子:
存在划线的东西,就代表他是个函数式接口,然后我们就可以用方法引用,如下:
这样就算实现了一个简单的引用
2.被引用方法必须存在
这个应该很显然,不存在的话怎么去引用,比如上文中的subtraction
3.被引用方法的形参和返回值需要跟抽象方法保持一致
就是画横线部分要保持一致
4.被应用方法要满足当前需求
4.引用方法的类型
1.引用静态方法
比如上文就是引用静态方法,格式为:类名::静态方法
2.引用成员方法
格式为:
对象::成员方法
this::成员方法()
super::成员方法
这里需要注意一下,如果是引用静态方法,是不能有this、super的,因为静态方法中没有this和super,所以在静态方法中引用类的成员,可以直接使用类名来访问静态成员,或者使用类名来创建实例对象,然后通过实例对象来访问
3.引用构造方法
格式为:
类名::new
javabean中Student的构造方法
至于这里为啥会要有个参数String,因为map接口函数中有个参数String,所以此时要保持一致
4.类名引用成员方法
类名::成员方法
这里被引用方法的形参,需要跟抽象方法的第二个形参到最后一个形参保持一致,返回值需要保持一致,,第一个参数表示被引用方法的调用者,决定了可以引用那些类中的方法(比如,第一个参数为String,则被引用的方法只能用String这个类中的方法),第二个参数到最后一个参数跟被引用方法的形参保持一致,如果没有第二个形参,说明被引用的方法需要是无参的成员方法
5.引用数组的构造方法
数据类型[ ]::new