为了解决必须在接口(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/