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

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

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-12 22:08:131050浏览

How Can Functions Be Passed as Parameters in Java?

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

在 Java 中,可以利用 Java 8 的 lambda 表达式将函数作为参数传递。当使用包含单个抽象方法(SAM 类型)的接口时,可以替换 lambda 表达式,从而实现简洁的代码。例如:

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

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

或者,方法引用可以提供更清晰的语法:

new Thread(this::someMethod).start();

Pre-Java 8 Approach

之前Java 8 中,命令模式通常用于将函数作为参数传递。这涉及将函数包装在 Callable 等接口中:

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

例如:

public int methodToPass() { return 3; }

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

要调用该函数,将使用匿名内部类:

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

请记住,这种方法本质上等同于其他语言中的函数指针。

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

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