我有一个SomeClass implements InterfaceA
。
我有一个方法:
public void doSomething(List<SomeClass) objects);
在这个方法中我想调用:
public void doProcessing(List<InterfaceA) o);
我该怎么做?
尽管 SomeClass
isa InterfaceA
以下内容不起作用:
public void doSomething(List<SomeClass> objects){
doProcessing(objects);
}
处理这个问题的标准方法是什么?
最佳答案
更改 doSomething
的签名来自
public void doSomething(List<SomeClass> objects);
到
public void doSomething(List<InterfaceA> objects);
甚至更好
public void doSomething(List<? extends InterfaceA> objects);
(在这种情况下,您也应该更改 doProcessing
)。
这意味着你的两种方法都与接口(interface)一起工作,只知道接口(interface)而不关心具体的实现。
关于java - 在需要接口(interface)时传递特定对象的列表。如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9374382/