是否可以将函数作为参数传递给另一个函数?
void add()
{ ----
}
------
---
object.display(add());
答案 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())