为什么要使用方法引用
使用::
来指定方法名使用方法减少冗余代码。
实例
以学生类的4种方法来演示方法引用的具体使用方法。
@FunctionalInterface
public interface Supplier<T> {
T get();
}
// 构造器引用 Class::new
Student stu = method1(Student::new);
List<Student> sts = Arrays.asList(stu);
// 静态方法引用 Class::static_method
sts.forEach(Student::method2);
// 特定类的任意对象的方法引用 Class::method
sts.forEach(Student::method4);
// 特定对象的方法引用 instance::method
final Student leader = Student.method1( Student::new );
sts.forEach( leader :: method3 );
class Student {
public static void main(String[] args) {
public Student() {
super();
}
public static Student method1(Supplier supplier) {
return supplier.get();
}
public static void method2(Student supplier) {
System.out.println(supplier.toString());
}
public void method3(Student another) {
System.out.println(another.toString());
}
public void method4() {}
}
参考文献:https://www.runoob.com/java/java8-method-references.html