Возможно ли передать функцию как параметр в другую функцию?Могу ли я передать имя функции в качестве аргумента функции в java?
void add()
{ ----
}
------
---
object.display(add());
Возможно ли передать функцию как параметр в другую функцию?Могу ли я передать имя функции в качестве аргумента функции в java?
void add()
{ ----
}
------
---
object.display(add());
Вы можете передать его, но это будет взять тип возвращаемого метода как параметр, например
public int xyz();
предположить, что это подпись метода АБВ, и вы хотите, чтобы передать его
public int abc(int a)
, то вы можете пройти как
abc(xyz())
Примечание: дубликаты, приведенные выше, подходят для Java 1.0-7, для Java 8, пожалуйста, прочитайте ниже.
Вы можете передать имя как этот
object.display("add");
однако вам нужно будет искать это имя с помощью отражения. Это склонно к ошибкам, и я бы избегал этого.
Что вы можете сделать, это передать ссылку метод или лямбда
object.display(this::add);
или
object.display(() -> add());
Декларация для display
может быть
public void display(Runnable onDisplay) {
// do something
onDisplay.run();
// do something else
}
@FastSnail, не necesserily правда. это зависит от того, было ли намерение называть функцию add() где-то внутри дисплея() –