【问题标题】:Instantiate interface in java ( Android )在 java ( Android ) 中实例化接口
【发布时间】:2019-02-11 00:11:36
【问题描述】:

am i instantiating a interface here?

接口应该像抽象类吧?

注意:这个项目可以编译、运行和工作

【问题讨论】:

    标签: java android interface


    【解决方案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();
             }
        }
    }
    

    【讨论】:

    • 是创建一个类来实例化ir,还是在主类中实现?
    • 这主要是一种风格选择。
    【解决方案2】:

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

    Here's 一些额外的阅读材料。

    【讨论】:

      猜你喜欢
      • 2013-05-20
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 1970-01-01
      • 1970-01-01
      • 2019-01-03
      • 1970-01-01
      • 2014-07-27
      相关资源
      最近更新 更多