Java方法引用可以用于Lambda表达式。方法引用是Lambda表达式的一种简化写法,它允许你直接引用已经存在的方法或构造函数。方法引用可以分为四种类型:
-
静态方法引用:使用类名::静态方法名的形式表示。例如,
List::sort
是一个静态方法引用,它引用了List
类中的sort
方法。 -
实例方法引用:使用实例对象::实例方法名的形式表示。例如,
String::substring
是一个实例方法引用,它引用了String
类中的substring
方法。 -
任意对象的实例方法引用:使用类名::实例方法名的形式表示。例如,
Object::toString
是一个任意对象的实例方法引用,它引用了Object
类中的toString
方法。 -
构造方法引用:使用类名::new的形式表示。例如,
ArrayList::new
是一个构造方法引用,它引用了ArrayList
类的构造方法。
在Lambda表达式中,你可以使用方法引用来替换匿名内部类。例如,假设你有一个接口 Comparator<T>
,你可以使用方法引用来简化Lambda表达式的编写:
// 使用Lambda表达式
Collections.sort(list, (a, b) -> Integer.compare(a.length(), b.length()));
// 使用方法引用
Collections.sort(list, Comparator.comparingInt(String::length));
在这个例子中,我们使用了Lambda表达式和方法引用来实现相同的功能。方法引用使得代码更简洁易读。