我有一个问题,我无法理解。我正在处理一些已转换为原始List和Map结构的JSON数据。然后我测试一个特定的字段是否是List,如果是,我将其转换为一个以便进一步使用它。
所以我有;
if (value != null && value instanceof List){
List listValue = (List) value;
...
}
在Eclipse调试器中,我可以清楚地看到该值是一个ArrayList,它包含一个Map,因此代码继续到下一行进行强制转换。强制转换的结果是一个空List - 也就是说,listValue是一个没有任何内容的List。我不明白为什么会这样。谁能解释我做错了什么?
更新:这似乎是一个并发问题。我已经发布了一个答案,欢迎提出意见。感谢大家的投入。
答案 0 :(得分:0)
似乎是一个并发问题。在这里发帖帮助我得出了这个结论。我将自己的可变对象传递给@Async方法然后不期望它改变的错。一旦我把这个小问题排除在外,我的问题就像预期的那样消失了。