Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法将抽象类强制转换为实际对象_Java_Object_For Loop_Abstract Class - Fatal编程技术网

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

Java 无法将抽象类强制转换为实际对象,java,object,for-loop,abstract-class,Java,Object,For Loop,Abstract Class,我试图从REST响应将JSONObject加载到对象实体中,但当我尝试将抽象对象数组转换为真实对象时,我得到了一个异常:EntityAbstract[]无法转换为提要[] Feed扩展了EntityAbstract,因此它们在同一个系列中,当我调试返回的实体时,它们是Feed的实例,而不是EntityAbstract-因此我不明白为什么不允许我执行强制转换 这是cast方法声明(返回值) 当我找回我想要的实体时 for (Feed feed : (Feed[]) ((NewsService) s

我试图从REST响应将JSONObject加载到对象实体中,但当我尝试将抽象对象数组转换为真实对象时,我得到了一个异常:
EntityAbstract[]无法转换为提要[]

Feed
扩展了
EntityAbstract
,因此它们在同一个系列中,当我调试返回的实体时,它们是Feed的实例,而不是EntityAbstract-因此我不明白为什么不允许我执行强制转换

这是cast方法声明(返回值)

当我找回我想要的实体时

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

这抛出了一个异常。我应该怎么做才能提示正确的返回数组?

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

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

不要投射数组,而是投射数组中的对象。也许你也可以看看这里:
for (EntityAbstract af : (EntityAbstract[]) ((NewsService) service).getResponse().fetchEntities(Feed.class)) {
    Feed feed = (Feed)af;
    ...
}