方法引用
方法引用
将已经有的方法拿过来用,当作函数式接口中抽象方法的方法体
-
引用处必须是函数式接口;
-
被引用的方法必须已经存在
-
被引用方法的形参和返回值,需要跟抽象方法保持一致
-
被引用方法的功能要满足当前需求
:: :方法引用符;
方法引用的分类
引用静态方法
-
格式:
- 类名::静态方法
- 范例:Integer::parseInst
1
2
3
4
5
6
7
8
9
10
11
12import java.util.ArrayList;
import java.util.Collections;
public class MethodCite1 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
Collections.addAll(list, "1", "2", "3", "4", "5");
list.stream().map(Integer::parseInt)
.forEach(s -> System.out.print(s + "\t"));
}
} - 类名::静态方法
引用成员方法:
-
格式:
-
对象::成员方法
-
其他类:其他类对象::方法名
1
2
3
4
5
6
7public class MethodCite2 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
Collections.addAll(list, "张无忌", "周芷若", "赵敏", "张强", "张三丰");
list.stream().filter(Method::test).forEach(s -> System.out.print(s + "\t"));
}
} -
本类:this::方法名
-
父类:super::方法名
-
-
引用构造方法
-
再需要调用的类中重写一个构造方法,然后再主函数中调用;
1 | public class Student { |
1 | public class Main { |
使用类名引用成员方法
-
格式:类名::成员方法
-
范例:String::substring
1 | public class MethodCite3 { |
引用数组的构造方法
-
格式:数据类型[] :: new
-
范例:int[ ]::new
1 | public class MethodCite4 { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 NING / MiRACLE!