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

标签 java object for-loop abstract-class

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

Feed 扩展了 EntityAbstract,因此它们属于同一个系列,当我调试返回的实体时,它们是 Feed 的实例,而不是 EntityAbstract - 所以我不明白为什么不允许我进行转换。

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

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

当我检索我尝试的实体时;

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

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

最佳答案

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

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

关于java - 无法将抽象类转换为实际对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25404931/

相关文章:

c++ - std::string 中的数字

java - 在不同浏览器中维护网站

javascript - 根据不同的键但相同的值合并 2 个对象数组

java - Connectivity Manager unregisterNetworkCallBack 已注销

javascript - 创建要发送到 API 的对象的问题

javascript - 编写一个函数,返回其对应的所有键的所有值的数组

python-2.7 - for循环中出现溢出错误

javascript - "for"循环的奇怪语法

java - Struts2-同一Action类中不同 Action 之间对象值的持久化

java - Spring MVC Web 应用程序中的模板