Java方法引用是一种简化Lambda表达式的方式,它可以直接引用已经存在的方法,而不需要像Lambda表达式那样定义一个新的方法体。 方法引用可以分为四种类型: 1. 静态方法引用:引用静态方法,语法为`类名::静态方法名`。 例如:`Math::max`表示引用Math类的静态方法max。 2. 实例方法引用:引用某个对象的实例方法,语法为`对象名::实例方法名`。 例如:`System.out::println`表示引用System.out对象的println方法。 3. 类的任意对象方法引用:引用任意对象的实例方法,语法为`类名::实例方法名`。 例如:`String::length`表示引用String类的length方法。 4. 构造方法引用:引用构造方法,语法为`类名::new`。 例如:`ArrayList::new`表示引用ArrayList类的构造方法。 方法引用可以作为函数式接口的实现,可以作为方法的参数传递。 例如,假设有一个函数式接口`Converter`,定义了一个抽象方法`int convert(String str)`,可以使用方法引用来实现该接口: ```java Converter converter = Integer::parseInt; int result = converter.convert("123"); // 调用Integer.parseInt方法将字符串转换为整数 ``` 在上述代码中,`Integer::parseInt`表示引用Integer类的静态方法parseInt,将字符串转换为整数。然后,将该方法引用赋值给Converter接口的实例converter,通过调用convert方法来实现字符串到整数的转换。 方法引用可以简化代码,提高可读性,但需要注意方法引用的参数类型和返回类型必须与函数式接口的抽象方法相匹配。