参考 : https://blog.csdn.net/higher_/article/details/84317549
静态方法的引用 :
from (lambda表达式)
(args) -> Class.staticMethod(args)
to (方法的引用)
Class::staticMethod
静态方法引用实例 :
public class Student {
public String name;
public Student(){}
public Student(String name) {
this.name = name;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public static void resultName(Student student){
System.out.println(student.getName());
}
}
public class Lam {
public static void main(String[] args) {
List<Student> list = new ArrayList<>();
Student student = new Student();
student.setName("ming");
Student student1 = new Student();
student1.setName("xiao");
list.add(student);
list.add(student1);
//方法的引用
list.stream().forEach(Student::resultName);
}
}
已有对象的实例方法引用
from (lambda表达式)
(args) -> obj.instanceMethod(args)
to (方法的引用)
obj::instanceMethod
已有对象的实例方法引用 :
public class Student {
public void OtherMethod(String str){
System.out.println(str);
}
}
public class Lam {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
Student student = new Student();
list.add("handao");
list.add("cold");
//方法的引用
list.stream().forEach(student::OtherMethod);
}
}
特定类型的对象的实例方法的方法引用
from (lambda表达式)
(obj, args) -> obj.instanceMethod(args)
to (方法的引用)
ObjectType::instanceMethod