java 如何引用函数
引用函数的方法
在Java中,函数(方法)的引用可以通过多种方式实现,具体取决于使用场景和需求。以下是几种常见的方法引用方式:
方法引用操作符(::)
Java 8引入了方法引用操作符::,允许直接引用现有方法。适用于函数式接口(如Runnable、Consumer等)的实现。
- 静态方法引用:
ClassName::staticMethodName - 实例方法引用:
instance::methodName - 构造方法引用:
ClassName::new
示例:
List<String> list = Arrays.asList("A", "B", "C");
list.forEach(System.out::println); // 实例方法引用
Lambda表达式
通过Lambda表达式间接引用方法,适用于需要实现函数式接口的场景。
Function<String, Integer> converter = Integer::parseInt; // 静态方法引用
int result = converter.apply("123");
反射调用方法
通过java.lang.reflect.Method动态获取和调用方法,适用于运行时确定方法的情况。
Class<?> clazz = MyClass.class;
Method method = clazz.getMethod("methodName", parameterTypes);
Object result = method.invoke(instance, args);
函数式接口赋值
将方法引用直接赋值给函数式接口变量。

Consumer<String> printer = System.out::println;
printer.accept("Hello");
注意事项
- 方法引用需匹配目标函数式接口的参数和返回类型。
- 反射调用需处理异常(如
NoSuchMethodException、IllegalAccessException)。 - Lambda和方法引用通常用于简化代码,尤其在流式操作(Stream API)中。






