gpt4 book ai didi

java - 将 List 转换为 Set 后,增强的 for 循环抛出 ClassCastException

转载 作者:行者123 更新时间:2023-12-01 19:16:35 25 4
gpt4 key购买 nike

转换后遇到问题 List<MyCustomObject>HashSet<MyCustomObject> 。当我尝试使用增强的 for 迭代每个元素时我得到一个ClassCastException指出“java.util.HashMap 无法转换为 MyCustomObject”。

这是代码:

    List<MyCustomObject> myList = remoteMethod.getList();//the list is obtained via a REST call so it does go through the serialize/deserialize process...
Set<MyCustomObject> mySet = new HashSet<MyCustomObject>(myList);
for(MyCustomObject object : mySet) <----this is where it goes boooom!!!
{
DB.add(object);
}

因此,在增强的 for 语句之前,我提取了列表中的第一个对象并使用 .getClass它确实显示为 HashMap 。序列化/反序列化期间发生了什么事情吗?或者是在List的转换中至Set ?可能出了什么问题,我该如何解决?

最佳答案

无论将数据放入 remoteMethod.getList() 返回的 List 中,都是将 HashMap 放入其中,而不是 MyCustomObject。您应该更改它以将 MyCustomObject 放入 List 中。

列表内容不保证MyCustomObject实例at runtime ,这可能就是让您感到困惑的原因。

关于java - 将 List 转换为 Set 后,增强的 for 循环抛出 ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6376848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com