【问题标题】:Cannot cast abstract class into actual object无法将抽象类转换为实际对象
【发布时间】:2014-10-13 19:45:56
【问题描述】:

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

Feed 扩展 EntityAbstract 所以它们属于同一个家族,当我调试返回的实体时,它们是 Feed 的实例,而不是 EntityAbstract - 所以我不明白为什么我不允许这样做演员表。

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

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

当我尝试检索实体时;

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

这会引发异常。我应该怎么做才能提示正确的返回数组?

【问题讨论】:

标签: java object for-loop abstract-class


【解决方案1】:

抽象类元素数组不能转换为特定类型的数组,但您可以根据需要转换单个元素:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 2014-11-12
    • 2018-03-06
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多