方法引用
- 将已经写好的方法拿过来, 作为函数式接口的抽象方法的方法体
- 引用处必须是函数式接口
- 被引用的方法必须存在
- 被引用的方法返回值和参数必须和抽象方法保持一致
- 被引用的方法的功能需要满足当前需求
引用静态方法
- 格式: 类名 :: 静态方法
引用成员方法
- 格式: 对象 :: 成员方法
- 其他类 -- 其他类对象 :: 方法名
- 本类 -- this :: 方法名(引用处不能是静态方法, 静态方法中没有this)
- 父类 -- super :: 方法名(引用处不能是静态方法, 静态方法中没有super)
引用构造方法
- 格式: 类名 :: new
- 需要根据实际情况重载构造方法
使用类名引用成员方法(不能引用所有类中的成员方法)
- 格式: 类名 :: 成员方法
使用类名引用成员方法的特殊规则
- 引用处必须是函数式接口
- 被引用的方法必须存在
- 被引用的方法的形参, 需要跟抽象方法的第二个参数到最后一个参数保持一致, 返回值类型需要一致
- 被引用的方法的功能需要满足当前需求
此时抽象方法的形参详解:
- 第一个参数: 表示被引用方法的调用者, 决定了可以引用哪些类中的方法
在Stream流里面, 第一个参数一般都表示流里面的每一个数据
假设流里面的数据是字符串类型, 那么使用这种方法来引用方法, 则只能引用String这个类里面的方法 - 第二个参数到最后一个参数: 跟被引用方法的形参保持一致, 如果没有第二个参数, 则被引用方法只能是空参的成员方法
引用数组的构造方法
- 格式: 数据类型[] :: new