@D7ILeucoH

Как реализуется передача функции в объект Java?

Создан объект простого класса:
MediaProfiler profiler = new MediaProfiler();
На этом же уровне существует метод
void f() {
        Log.e("TAG", "d");
}

Каким образом можно передать метод "f()" в объект "profiler"?

Если говорить на псевдокоде, то возможно через такую необычную реализацию:
void f() {
        Log.e("TAG", "d");
}
private void spot() {
        profiler = new MediaProfiler();
        profiler.onRun=f; //но не работает
}
public class MediaProfiler {

    public MediaProfiler() {
		//...
    }

    public void onRun() {
		//изменится после изменения
    }
}
  • Вопрос задан
  • 88 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
class SomeClass {
    void f() {
        Log.e("TAG", "d");
    }

    private void spot() {
        profiler = new MediaProfiler();
        profiler.onRun(SomeClass::f);
    }
}

public class MediaProfiler {
    public void onRun(Runnable f) {
        f.run()
    }
}

Соответствующий раздел документации.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы