我有一个方法的接口
public List< Object > getLeftBusinessObjects( List< Object > businessObjectIds, Object owningSystemId );
Run Code Online (Sandbox Code Playgroud)
我的实施是:
public List<Object> getLeftBusinessObjects(List< Object > businessObjectIds, Object owningSystemId)
{
List<MyObject> myObjs= Helper.getMyObjects(businessObjectIds);
return myObjs;
}
Run Code Online (Sandbox Code Playgroud)
这样做我得到错误:
Type mismatch: cannot convert from List<MyObject> to List<Object>
Run Code Online (Sandbox Code Playgroud)
我必须以这种方式加倍演员
return (List<Object>) (Object) myObjs;
Run Code Online (Sandbox Code Playgroud)
避免错误.
有人能解释一下为什么吗?如果所有对象都具有每个dafault对象作为超类,为什么必须进行强制转换?
A List<MyObject>不是a List<Object>.,因为否则你就可以把a Object放进去了List<MyObject>
试试这个
public List<? extends Object> getLeftBusinessObjects(List< Object > businessObjectIds, Object owningSystemId)
{
List<MyObject> myObjs= Helper.getMyObjects(businessObjectIds);
return myObjs;
}
Run Code Online (Sandbox Code Playgroud)