我有一些实现接口的对象ArrayList,我想将它们传递给处理接口的函数。
问题是我无法将对象的ArrayList传递给接受接口的ArrayList的函数
编辑:使用该对象的ArrayList的函数将无法接受该接口的ArrayList。这可以在不创建两个列表的情况下完成吗?
编辑:标记为重复的问题。我理解这个问题但是上一个问题没有说明是否有将对象列表传递给接口列表的解决方案。
我的问题的简化版本
//Interface
public interface SomethingInterface{
abstract void doesntmatter();
}
//Object
public class SomethingObject implements SomethingInterface{
public void doesntmatter(){}
}
//Second Object
public class SomethingObject2 implements SomethingInterface{
public void doesntmatter(){}
}
//Function that wants to be able to accept all objects that implement the interface
public void PassToInterface(ArrayList<SomethingInterface> list){
for(SomethingInterface i : list){
i.doesntmatter();
}
}
//Function that uses list of one of the objects
public void PassToObject(ArrayList<SomethingObject> list){
//Do something
}
public static void main(String args[]){
ArrayList<SomethingObject> somethings = new ArrayList();
ArrayList<SomethingObject2> somethings2 = new ArrayList();
//Unable to pass ArrayLists of the objects that implement the interface
PassTo(somethings);
PassTo(somethings2);
}
答案 0 :(得分:0)
您的PassTo
方法接收ArrayList<SomethingInterface>
作为参数。
您需要指定 somethings 和 somethings2 才能接受SomethingInterface
,但您仍然可以添加对象SomethingObject
和{{1}在它里面。
SomethingObject2