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表达式和方法引用来实现相同的功能。方法引用使得代码更简洁易读。