java - 如何将实现接口(interface)的类添加到 ArrayList

标签 java android arraylist polymorphism

为了解决必须在接口(interface)中实现所有方法的问题,我创建了一个实现接口(interface)的抽象类,然后让其他类扩展该抽象类并仅覆盖所需的方法。

我正在为我的应用构建 API/框架。

我想添加作为接口(interface)实例的类 IMyInterface ArrayList :

ArrayList<Class<IMyInterface>> classes = new ArrayList<>();  
classes.add(MyClass.class);  

这里是MyClass

class MyClass extends AbstractIMyInterface {}  

这里是AbstractIMyInterface

class AbstractIMyInterface implements IMyInterface {}  

到目前为止,这似乎是不可能的。我上面的方法行不通:

add (java.lang.Class<com.app.IMyInterface>)<br/> in ArrayList cannot be applied to<br/> (java.lang.Class<com.myapp.plugin.plugin_a.MyClass>)

我怎样才能做到这一点,即:添加一个扩展另一个类的类到 ArrayList

最佳答案

你需要使用通配符 ? extends IMyInterface .

ArrayList<Class<? extends IMyInterface>> classes = new ArrayList<>();

ArrayList<Class<IMyInterface>> classes , 您只能添加 Class<IMyInterface> .

关于java - 如何将实现接口(interface)的类添加到 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47067888/

相关文章:

java - 将项目添加到 ArrayLists 大小错误的 LinkedList

java - 排序多个数组列表的数组列表

java - 为什么ArrayList中的set方法不更新modCount?

java - Debian linux 上的 Android SDK 有空白窗口

java - 为什么 java.io.FileDescriptor 的构造函数是公开的?

android - 将两个参数传递给 asynctask 方法。如何?

java - 应用启动时首次显示 Android 应用教程页面

java - 找不到用于导入的 jar 文件

java - 如何在 Linux 上安装 Maven 的手册页?

Android NDK "ndk-build"识别为内部或外部命令批处理文件