java - 如何将一个函数作为参数传递给另一个函数

标签 java lambda java-8

我想将一个函数作为参数传递给另一个函数。例如:

void myFunction(boolean coondition, void function())
{
   if(condition) {
     function();
   }
}

这在 Java 8 中可能吗?

最佳答案

不,你不能传递方法。

但是有一个简单的解决方法:传递一个 Runnable。

void myFunction(boolean coondition, Runnable function)
{
   if(condition) {
     function.run();
   }
}

并这样调用它:(使用旧语法)

myFunction(condition, new Runnable() {
    @Override
    public void run() {
        otherFunction();
    }
});

或使用 Java 8 中新的 lambda 语法(主要是上述语法的简写):

myFunction(condition, () -> {otherFunction();}}

关于java - 如何将一个函数作为参数传递给另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29222070/

相关文章:

java - 将 Kotlin IntArray 转换为 ValueAnimator 所需的 Java Object[]

c++ - 通过 lambda 部分特化类模板

java - 是否有必要同步读取列表而不修改列表的方法?

c++ - 包含通过引用捕获的 lambda 函数的 "variable"的类型是什么?

C# lambda : using Event<T>()

java 8 lambda 不明确的可运行和回调

java - 使用 Java 8 流过滤和收集嵌套的集合元素

java - Collectors.toMap 具有相同的键(打印相同的键)

java - Android Things - 未应用 UpdatePolicy

java - 将父类成员仅限于其直接子类