Java中的实例化接口(Android)

时间:2019-02-11 00:11:37

标签: java android interface

am i instantiating a interface here?

接口应该像抽象类一样?

注意:该项目可以编译,运行和运行

2 个答案:

答案 0 :(得分:1)

您正在创建实现该接口的匿名类。请注意,您如何在onMoviesReady()中提供MoviePresenter的实现。

Here's上的一些其他阅读材料。

答案 1 :(得分:1)

否,您正在创建实现该接口的匿名类,并将其实例化。如果它是一个抽象类而不是一个接口,那将是正确的。

您正在做的事情类似于创建内部类并将其实例化。

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();
         }
    }
}