У меня есть два класса, и в одном из них я хочу создать переменную, которая будет содержать функцию из другого класса. Я хочу сделать это, чтобы динамически изменить поведение условно.
Я пробовал следующий прототип, который приводит к ошибке компиляции:
class A {
public String myFn(int a, int b) {
return "<" + a + " " + b + ">";
}
public String myFn2(int a, int b) {
return "(" + a + " " + b + ")";
}
}
class B {
static int mode = 1;
public void fn() {
BiFunction<Integer, Integer, String> fn = null;
if(mode == 1) {
fn = ClassA.myFn(); // This results in an error "Cannot resolve method fn()".
}
else {
//fn = ClassA.myFn2();
}
// next I will use fn ...
}
}
Это приводит к ошибке «Не удается разрешить метод fn () ".
Как сохранить функцию?
Спасибо.