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

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

Linda Hamilton
Linda Hamilton原创
2024-12-16 03:58:10643浏览

How Can I Pass Functions as Parameters in Java?

Java中的函数作为参数

在Java中,如何将函数作为参数传递给另一个函数?

Java 8及更高版本

使用Java 8 lambda表达式,当拥有仅拥有一个抽象方法的类或接口(有时称为SAM类型)时,例如:

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

则可以在MyInterface被使用的地方代为使用lambda表达式:

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

例如,可以通过创建一个新的线程来快速执行:

new Thread(() -> someMethod()).start();

并使用方法引用语法使其更加简洁:

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

如果不使用lambda表达式,最后两个示例将如下所示:

new Thread(new Runnable() { someMethod(); }).start();

Java 8之前版本

一个常见的模式是将函数“包装”在接口内,例如Callable,然后传递一个Callable:

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

此模式被称为命令模式。

请记住,最好为特定用途创建接口。如果选择使用调用,则将上面的T替换为所期望的任何类型的返回值,例如String。

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

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