简介
- lambda表达式是用来简化匿名内部类的
- 方法引用 使用来
简化 lambda表达式
的
方法引用的标志
两个冒号
静态方法
静态方法
class CompareByAge {
public static int compare(Student o1, Student o2) {
return o1.getAge() - o2.getAge();
}
}
静态方法引用
Arrays.sort(students, CompareByAge::compare);
实例方法
成员方法
class CompareByAge {
public int compareDesc(Student o1, Student o2) {
return o1.getAge() - o2.getAge();
}
}
实例方法引用
// 实例方法引用
CompareByAge compareByAge = new CompareByAge();
Arrays.sort(students, compareByAge::compareDesc);
特定类型方法引用
// 特定类型的方法引用 类名::实例方法名
// 第一个参数是调用方法的对象,后面的所有参数是方法的参数
String[] names = {"zhangsan", "lisi", "wangwu", "zhaoliu", "sunqi"};
Arrays.sort(names, String::compareToIgnoreCase);
构造方法引用
接口函数
interface StudentCreator {
Student create(String name, int age);
}
构造器引用
// 构造方法引用
StudentCreator studentCreator = Student::new;
Student student = studentCreator.create("zhangsan", 20);
System.out.println(student);