将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
。序列化/反序列化期间是否发生了什么?还是在List
到Set
的转换中?可能出什么问题了,我该如何解决? 最佳答案
将数据放入List
返回的remoteMethod.getList()
的任何内容都是将HashMap
而不是MyCustomObject
放入其中。您应该更改它以将MyCustomObject
放入List
。
不能保证列表的内容是MyCustomObject
实例at runtime,这可能是造成混乱的原因。