0

我有一个问题,我无法转动我的头。我正在处理一些已转换为原始 List 和 Map 结构的 JSON 数据。然后我正在测试一个特定的字段是否是一个列表,如果是,我将它转换为一个以便进一步使用它。

所以我有;

if (value != null && value instanceof List){
   List listValue = (List) value;
   ...
}

在 Eclipse 调试器中,我可以清楚地看到 value 是一个 ArrayList,它包含一个 Map,因此代码继续到发生强制转换的下一行。强制转换的结果是一个空列表——也就是说,listValue 是一个没有任何内容的列表。我不明白为什么会这样。谁能阐明我做错了什么?

更新:这似乎是一个并发问题。我已经发布了一个答案,欢迎评论。感谢大家的意见。

4

1 回答 1

0

似乎是一个并发问题。在这里发帖帮助我得出了这个结论。我自己的错误是将可变对象传递给 @Async 方法,然后不期望它改变。一旦我解决了那个小问题,我的问题就如预期的那样消失了。

于 2013-05-28T11:58:21.793 回答