在 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中文网其他相关文章!