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,它的DID为HashMap。序列化/反序列化期间是否发生了什么?还是在ListSet的转换中?可能出什么问题了,我该如何解决?

最佳答案

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

不能保证列表的内容是MyCustomObject实例at runtime,这可能是造成混乱的原因。

09-25 22:31