首页 >Java >java教程 >如何在 Java 中将函数作为参数传递?

如何在 Java 中将函数作为参数传递?

Barbara Streisand
Barbara Streisand原创
2024-12-14 04:18:09372浏览

How Can I Pass Functions as Arguments in Java?

在 Java 中将函数作为参数传递

在 Java 中,将函数作为参数传递的能力增强了代码的多功能性。为了实现这一点,根据您使用的 Java 版本,有多种方法。

Java 8 及更高版本

随着 Java 8 中 lambda 表达式的出现,通过函数作为参数变得简单。 Lambda 表达式允许您定义实现单一抽象方法 (SAM) 接口的匿名函数。例如,您可以定义以下接口:

public interface MyInterface {
    String doSomething(int param1, String param2);
}

在接受 MyInterface 类型参数的方法中,您现在可以使用 lambda 表达式来传递函数,如下所示:

class MyClass {
    public MyInterface myInterface = (p1, p2) -> { return p2 + p1; };
}

Java 8 之前

Java 8 之前,将函数传递为的常见方法参数的目的是将它们封装在 Callable 等接口中。考虑以下方法:

public T myMethod(Callable<T> func) {
    return func.call();
}

此方法接受 Callable 类型的参数,它表示返回 T 类型值的函数。您可以定义 Callable 实现来封装您的函数并将其作为myMethod 的参数。

用法示例:

如果您有一个名为 methodToPass 的方法,如果你想作为参数传递,你可以创建一个 Callable 实现,如下所示:

public int methodToPass() {
    // do something
}

public void dansMethod(int i, Callable<Integer> myFunc) {
    // do something
}

然后用 Callable 实现调用 dansMethod 方法:

dansMethod(100, new Callable<Integer>() {
    public Integer call() {
        return methodToPass();
    }
});

结论:

这些方法提供了在 Java 中将函数作为参数传递的不同方法,具体取决于您的 Java 版本和特定要求。通过了解这些技术,您可以增强 Java 代码的灵活性和可重用性。

以上是如何在 Java 中将函数作为参数传递?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn