我有一个接口VersionInterface
,它由我的对象ObjectDefinition
我还有一个接受两个List<VersionInterface>
作为参数的方法。
由于ObjectDefinition
实现了VersionInterface
,为什么我不能将我的两个List<VersionInterface>
作为参数传递给我的方法?
方法定义:
public List<VersionInterface> updateArtifact(List<VersionInterface> currentCopy, List<VersionInterface> updatedCopy)
ObjectDefinition
定义:
public class ObjectDefinition implements VersionInterface {
我如何致电updateArtifact
:
service.updateArtifact(currentCopy, updatedCopy);
currentCopy
和updatedCopy
都是ArrayList<ObjectDefinition>
我明白了:
The method updateArtifact(List<VersionInterface>, List<VersionInterface>) in the type ORService is not applicable for the arguments (List<ObjectDefinition>, List<ObjectDefinition>)
修改 我的问题与接口而不是子类有关
答案 0 :(得分:-1)
您不能这样做,因为方法原型指定它返回VersionInterface对象的List,而不是ObjectDefinition对象的List。
VersionInterface是一个界面,正如您所展示的那样。也许ObjectDefinition是唯一实现该接口的类,但通常在Java中不是这种情况。 VersionInterface可能有多个实现,返回的List可能包含各种不同类型的对象。