我可以在java中将函数名称作为函数参数传递吗?

时间:2016-11-21 11:28:07

标签: java

是否可以将函数作为参数传递给另一个函数?

void add()
{ ----
}
------
---
object.display(add());

2 个答案:

答案 0 :(得分:5)

注意:上面的重复内容适用于Java 1.0到7,对于Java 8,请阅读下面的内容。

您可以传递这样的名称

object.display("add");

但是你需要使用反射查找该名称。这很容易出错,我会避免它。

您可以做的是传递方法参考或lambda

object.display(this::add);

object.display(() -> add());

display的声明可能是

public void display(Runnable onDisplay) {
    // do something
    onDisplay.run();
    // do something else
}

答案 1 :(得分:0)

您可以传递它,但它会将返回类型的方法作为参数,例如

  public int xyz(); 

假设这是方法xyz的签名,并且您想将其传递给

  public int abc(int a)

那么你可以传递

    abc(xyz())