【问题标题】:how to declare an interface inside non static inner class如何在非静态内部类中声明接口
【发布时间】:2017-12-24 02:17:30
【问题描述】:

我正在努力通过关注simple tutorial 来改进 android 回收器视图。我发现了一个 java 问题:如果我在如下所示的非静态视图持有者内部类中声明一个接口...

public class DumbViewHolder extends RecyclerView.ViewHolder {
    //...
    ExcellentAdventureListener listener;

    public interface ExcellentAdventureListener {
        void onMapClicked(ExcellentAdventure item);
        void onTitleClicked(ExcellentAdventure item);
    }   
    //...
}

java 给我以下错误:

内部类不能有静态声明。

为什么?我该如何解决?

【问题讨论】:

  • 在你的代码中,我看不到任何STATIC DECLARATION
  • '非静态内部'是一个重言式。在外层定义接口,或者确实在外层定义 class,这是您的引文中必须发生的事情。您不能将接口放入内部类中。

标签: java android


【解决方案1】:

你为什么把你的接口放在一个内部类中?它在外面可以正常工作。

只需获取您的接口并将其作为变量保存在您的适配器中,并检查传递给您的适配器的对象是否实现了接口方法,然后将该对象转换为您的接口。

【讨论】:

    猜你喜欢
    • 2013-10-29
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多