对于JAVA的方法引用“类::实例方法”的方式的疑惑
/*
1. 被引用方法的参数,需要与抽象方法的第2个到最后1个参数保持一致
ps: 实例方法的第1个参数其实是隐含的this
如果这个this (实例对象) 的类型与抽象方法的第一个参数类型一致,就可以用类名引用实例方法
*/
ArrayList<String> list = new ArrayList<>();
Collections.addAll(list, "a", "b", "c");
// 将集合中的字母转为大写
list.stream()
// 数据流中的数据类型为 String,所以可以引用 String 类中的实例方法
.map(String::toUpperCase)
.forEach(System.out::println);
请问按照注释中的理解,是否是正确的呢?
这个是 Method Reference Expression。
此时,如果它是类成员函数,调用的第一个参数就是调用函数的对象,后续参数是调用成员函数的参数。
基本跟你注释里写的差不多。