java 方法名作为参数
时间: 2023-09-05 13:10:35 浏览: 142
在 Java 中,方法名可以作为参数传递给其他方法。这种方法称为高阶函数或者函数式接口。为了实现这种功能,Java 8 引入了 Lambda 表达式和函数式接口。以下是一个简单的例子:
```java
public class MethodAsParamExample {
public static void main(String[] args) {
// 定义一个方法,该方法接受一个整数和一个函数式接口作为参数
// 函数式接口的类型是 IntUnaryOperator,它接受一个整数并返回一个整数
int result = operate(5, x -> x * x);
System.out.println(result); // 输出 25
}
// 接受一个整数和一个函数式接口作为参数,并使用该函数式接口对整数进行操作
public static int operate(int num, IntUnaryOperator operator) {
return operator.applyAsInt(num);
}
}
```
在上面的例子中,我们定义了一个 `operate` 方法,该方法接受一个整数和一个函数式接口 `IntUnaryOperator` 作为参数。函数式接口 `IntUnaryOperator` 是一个只有一个抽象方法 `applyAsInt(int operand)` 的接口,它接受一个整数并返回一个整数。
我们在 `main` 方法中调用了 `operate` 方法,并将整数 5 和一个 Lambda 表达式 `(x -> x * x)` 作为参数传递给它。Lambda 表达式 `(x -> x * x)` 表示一个函数,它接受一个整数并返回这个整数的平方。在 `operate` 方法中,我们调用了 Lambda 表达式所表示的函数式接口的 `applyAsInt` 方法,将整数 5 作为参数传递给它,得到了整数 25。
这就是 Java 中方法名作为参数的一个简单例子。通过使用 Lambda 表达式和函数式接口,我们可以实现更加灵活的方法调用。
阅读全文