Java 使用?在列表参数中
我试图将CustomObject添加到CustomObject的列表中(该列表封装在另一个类CustomObjectList中)。 但是,我的控制台上有以下错误: 类型CustomObjectList中的方法.add(CustomObject)不适用于参数(capture#5-of?扩展了ICustomObject)Java 使用?在列表参数中,java,Java,我试图将CustomObject添加到CustomObject的列表中(该列表封装在另一个类CustomObjectList中)。 但是,我的控制台上有以下错误: 类型CustomObjectList中的方法.add(CustomObject)不适用于参数(capture#5-of?扩展了ICustomObject) ICustomObject是CustomObject实现的接口 CustomObjectList实现如下: class CustomObjectList { private
ICustomObject
是CustomObject实现的接口
CustomObjectList
实现如下:
class CustomObjectList {
private List<CustomObject> bar = new ArrayList<CustomObject>();
public List<CustomObject> getCustomObjectList() {
return this.bar;
}
public void add(CustomObject foo) {
this.bar.add(foo);
}
}
CustomObjectList randomName = new CustomObjectList();
for (ICustomObject iCO : anOtherObject.getCustomObjectList()) {
randomName.add(iCO);
}
与:
public class anOtherObject {
private CustomObjectList customObjectList;
public List<? extends ICustomObject> getCustomObjectList {
return customObjectList.getCustomObjectList();
}
}
公共类另一个对象{
私有CustomObjectList CustomObjectList;
public List接口返回实现ICUSTOObject的对象列表,但这些对象可能不是CustomObject类(因为其他类也可能实现ICUSTOObject)正因为如此,您无法将返回的项目添加到CustomObject列表中。请编辑您的问题,以显示什么是ICustomObject
,以及它与其他所有内容的关系。此外,您的错误似乎是由另一段调用add
方法的代码引起的,但您也没有显示该代码。我最担心的是rry,我正在处理我公司的一些代码,部分是通过内存发布的。我按照您的要求进行了编辑。您定义了CustomObjectList#getCustomObjectList()
以返回List
,并在另一个对象#getCustomObjectList()中
您可以假装它返回列表它不是我的代码,这取决于具体情况,例如,您可以将bar定义为列表,或者在将ICustomObjects添加到列表之前强制转换属于CustomObject类的ICUSTObjects