无法将抽象类转换为实际对象

时间:2014-08-20 12:38:02

标签: java object for-loop abstract-class

我试图从REST响应中将jsonObjects加载到对象实体中,但是当我尝试将抽象对象数组转换为实际对象时,我得到了异常:EntityAbstract[] cannot be cast to Feed[]

Feed扩展EntityAbstract所以它们属于同一个系列,当我调试返回的实体时,它们是Feed的实例,而不是EntityAbstract - 所以我不明白为什么我&# 39; m不允许进行演员表演。

这是强制转换方法声明(返回值)

public EntityAbstract[] fetchEntities (Class entityClass) throws Exception
{}

当我试图回复实体时,

for (Feed feed : (Feed[]) ((NewsService) service).getResponse().fetchEntities(Feed.class))
{}

这引发了异常。为了暗示正确的返回数组,我该怎么做?

1 个答案:

答案 0 :(得分:1)

无法将抽象类元素数组强制转换为特定类型的数组,但您可以根据需要强制转换各个元素:

for (EntityAbstract af : (EntityAbstract[]) ((NewsService) service).getResponse().fetchEntities(Feed.class)) {
    Feed feed = (Feed)af;
    ...
}