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

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

Linda Hamilton
发布: 2024-12-16 03:58:10
原创
641 人浏览过

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板