作者:KNN | 来源:互联网 | 2023-02-06 16:19
我已经尝试了我所知道的一切以及我在网上找到的任何东西,但它只是不起作用.我一直在:
java.lang.ClassCastException:java.util.LinkedHashMap无法强制转换为com.mycompany.myproject.dto.MyDto
如果有人能在下面的代码中告诉我我做错了什么,我将不胜感激:
List
REST调用返回一个List,其中包含一个HashMap对象,其中"Key"类型为Long,而"Value"类型为MyDto.然后我打印地图的"大小"和地图本身.两者都打印正确和预期的信息.
然后我从地图中提取值列表,如下所示:
List dtos = new ArrayList(myMap.values());
没问题.
但是,当我尝试通过转换列表中的对象(dtos)时,如下所示:
for(MyDto obj : dtos) {
sjStoreIds.add(obj.getId());
}
我得到java.lang.ClassCastException:java.util.LinkedHashMap中不能被强制转换为com.mycompany.myproject.dto.MyDto用于为(MyDto OBJ:DTOS){一部分.
现在旋转我的大脑超过2个小时.:(
我相信它会变成一种非常基本的东西,一旦我知道它就会生气和尴尬,但有人可以告诉我我做错了吗?
编辑
以下是我在服务器端的REST实现:
@Override
public List
上面的" testInfo "是一个由SQL查询构建的映射.
1> Louis Wasser..:
restTemplate.getForObject
正在返回你的东西是不是真正一个List>
.您显示的所有代码都是类型安全且正确的,但是getForObject
在其签名中默默地跳过类型检查,这就是咬你.弄清键入它确实是.(根据你向我们展示的内容,它可能是一个List>>
.)