Создание интерфейса в Java (Android) - PullRequest
0 голосов
/ 11 февраля 2019

я здесь создаю экземпляр интерфейса?

Интерфейсы должны быть похожи на абстрактные классы, верно?

Примечание: этот проект компилируется, запускается и работает

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Нет, вы создаете анонимный класс, который реализует этот интерфейс, и создаете его экземпляр.То же самое было бы верно, если бы это был абстрактный класс вместо интерфейса.

То, что вы делаете, похоже на создание внутреннего класса и его создание.

public class MoviePresenter {
    public interface MovieReady {
        void onMoviesReady();
    }

    //...

    public MoviePresenter(Context mContext, RecyclerView movieRecycler) {
        mr = new MovieReadyImpl();
        //...
    }

    //...

    public class MovieReadyImpl implements MovieReady { //this is the equivalent to what you're doing. It just has a proper class name
         @Override
         public void onMoviesReady() {
             InitRecyclerView();
         }
    }
}
0 голосов
/ 11 февраля 2019

Вы создаете анонимный класс, который реализует этот интерфейс.Обратите внимание, как вы предоставляете реализацию onMoviesReady() в MoviePresenter.

Вот некоторые дополнительные материалы для чтения по этому вопросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...