Java抽象类中的泛型问题
抽象类代码如下:
public abstract class AbstractRankDataService {
public JsonObject process(JsonObject obj) {
List list = getRankModel(obj);
fill(list); // 错误就在这里 A
return new JsonObject();
}
public abstract List fill(List list);
public List getRankModel(JsonObject jsonObject){
// 此处省略具体实现
return null;
}
}
实现类代码如下:
public class ARankDataService extends AbstractRankDataService {
@Override
public List fill(List rankModels) {
// 此处处理rankModels报错,因为此时rankModels的类型是父类---BaseRankDataModel,提示类型转换异常
}
}
具体描述:
在抽象类的抽象方法入参是List
,但是在子类中List的内部对象是父类,报类型转换异常(父类转子类异常),求大神指点
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这个和泛型没啥关系。
如果在fill中仅处理BaseRankDataModel。
按以下修正即可:
如果返回值List中的内容也是BaseRankDataModel,则还可以修正为:
然后在ARankDataService在实现抽像方法即可。