関数を別の関数のパラメータとして渡すことはできますか?javaの関数引数として関数名を渡すことはできますか?
void add()
{ ----
}
------
---
object.display(add());
関数を別の関数のパラメータとして渡すことはできますか?javaの関数引数として関数名を渡すことはできますか?
void add()
{ ----
}
------
---
object.display(add());
可能性がメソッド参照またはラムダ
object.display(this::add);
または
object.display(() -> add());
を渡しているあなたはそれを渡すことができますが、それはなりますメソッドの戻り値の型をパラメータとして取る
public int xyz();
がこのメソッドのXYZの署名であると仮定して、あなたは、あなたが
abc(xyz())
注:上記の複製は、Java 1.0から7では適切です。Java 8では、以下をお読みください。
あなたはリフレクションを使用してその名前をルックアップする必要があるだろうしかしあなたはこの
object.display("add");
のような名前を渡すことができます。これはエラーが起こりやすく、私はそれを避けるでしょう。あなたは何ができるか
がdisplay
の宣言が
public void display(Runnable onDisplay) {
// do something
onDisplay.run();
// do something else
}
@FastSnail、necesserily真実ではないように渡すことができます
にそれを渡したいです。 display()内のどこかでadd()関数を呼び出すかどうかによって異なります。 –