Java 如何将实现接口的类添加到ArrayList
为了解决必须实现接口中所有方法的问题,我创建了一个实现接口的抽象类,然后让其他类扩展该抽象类并只覆盖所需的方法 我正在为我的应用程序构建一个API/框架。Java 如何将实现接口的类添加到ArrayList,java,android,arraylist,polymorphism,Java,Android,Arraylist,Polymorphism,为了解决必须实现接口中所有方法的问题,我创建了一个实现接口的抽象类,然后让其他类扩展该抽象类并只覆盖所需的方法 我正在为我的应用程序构建一个API/框架。 class MyClass extends AbstractIMyInterface {} class AbstractIMyInterface implements IMyInterface {} 我想将作为接口实例的类添加到数组列表中: ArrayList<Class<IMyInterface>> cl
class MyClass extends AbstractIMyInterface {}
class AbstractIMyInterface implements IMyInterface {}
我想将作为接口实例的类添加到数组列表中:
ArrayList<Class<IMyInterface>> classes = new ArrayList<>();
classes.add(MyClass.class);
这里是抽象接口
class MyClass extends AbstractIMyInterface {}
class AbstractIMyInterface implements IMyInterface {}
到目前为止,这似乎是不可能的。我的上述方法行不通:
add(java.lang.Class)
in-ArrayList不能应用于
(java.lang.Class)
如何实现这一点,即:添加一个类,将另一个类扩展到数组列表您需要使用通配符?扩展imy接口
ArrayList<Class<? extends IMyInterface>> classes = new ArrayList<>();
ArrayList您可以使用?
进行此操作
List<Class <? extends IMyInterface>> arrayList = new ArrayList<>();
List我可以用这种方式添加,希望对大家有所帮助
public class MyClass extends AbstractIMyInterface {
@Override
public void onEating() {
//from interface
}
@Override
void onRunning() {
//from abstract
}
public static void main(String[] args){
ArrayList<IMyInterface> iMyInterfaces = new ArrayList<>();
MyClass myClass = new MyClass();
iMyInterfaces.add(myClass);
}
}
公共类MyClass扩展了AbstractIMyInterface{
@凌驾
公开作废{
//从接口
}
@凌驾
void onRunning(){
//抽象地
}
公共静态void main(字符串[]args){
ArrayList iMyInterfaces=新的ArrayList();
MyClass MyClass=新的MyClass();
添加(myClass);
}
}
看起来您正在尝试添加一个类的对象,该类不是IMyInterface的对象
感谢您的响应。什么是正确的方法@Prashant?我刚刚接受了你的答案@ramanlfc。然而,我正在努力迭代ArrayList