找建网站模板网站建设属于技术服务
1. 什么是方法引用?
-  
定义:Java 8 引入的语法糖,用于 简化 Lambda 表达式,直接引用已有的方法。
 -  
符号:使用
::双冒号操作符。 -  
本质:将方法作为函数式接口的实例传。
 
2. 方法引用的四种类型
|   类型  |   语法  | 
|---|---|
|   静态方法引用  |   Class::static_method  | 
|   特定对象的实例方法引用  |   Class::method  | 
|   实例方法引用  |   instance::method  | 
|   构造方法引用  |   Class::new  | 
3.方法引用示例
        //1.静态方法引用List<Integer> numbers = Arrays.asList(1, 3, 2, 5, 4);// 使用 Lambda 表达式Stream<Integer> sortedInLambda = numbers.stream().sorted((a, b) -> Integer.compare(a, b));System.out.println(sortedInLambda);// 使用方法引用Stream<Integer> sorted = numbers.stream().sorted(Integer::compare);System.out.println(sorted.collect(Collectors.toList()));  //[1, 2, 3, 4, 5]//2.特定对象的实例方法引用List<String> names = Arrays.asList("Alice", "Bob", "Charlie");// 使用 Lambda 表达式names.forEach(s -> System.out.println(s));// 使用方法引用names.forEach(System.out::println);//4.构造方法引用// 使用 Lambda 表达式Supplier<List<String>> supplier1 = () -> new ArrayList<>();// 使用方法引用Supplier<List<String>> supplier2 = ArrayList::new;
 
3实例方法引用
class Printer {// 实例方法public void printMessage(String message) {System.out.println(message);}
}public class MethodReferenceExample {public static void main(String[] args) {Printer printer = new Printer();// 使用实例方法引用Runnable r = printer::printMessage;r.run();  // 输出 null,因为没有传递参数}
} 
4. 方法引用的优势
-  
简化 Lambda 表达式,提升代码简洁性。
 -  
直接引用已有方法,意图清晰,支持静态方法、实例方法、构造方法的引用。
 -  
与函数式接口(如
Consumer、Supplier)紧密结合。 -  
合理使用可提升代码的可维护性和可读性。
 
5.参考
Java 8 方法引用 | 菜鸟教程
......
