0

我知道有类似的问题,但其中任何一个对我有用(或似乎有用)。

我需要执行以下语句:

ClassA a = new ClassA(); 
String JSON_str = objectMapper.writeValueAsString(a);

ClassA a1 = (ClassA)objectMapper.readValue(JSON_str, ClassA.class);
ClassB b = (ClassB)a1.getAttribute1();

如果我执行上面的代码,我会收到以下错误:

java.util.LinkedHashMap 不能转换为 ClassB

方法 getAttribute1 返回定义为“对象属性 1”的 ClassA 属性 1。它将在运行时使用 B 类的对象进行初始化。

请帮助我^^。

先感谢您。莱昂纳多

4

1 回答 1

0

正如错误提示的那样,a1.getAttribute1()返回一个 type 的对象java.util.LinkedHashMap。因此,要么将您的代码更改为:

ClassA a1 = (ClassA)objectMapper.readValue(JSON_str, ClassA.class);
java.util.LinkedHashMap b = (java.util.LinkedHashMap)a1.getAttribute1();

或者检查 ClassA 中填充此字段的代码,并尝试了解它为什么不使用ClassB实例填充对象。

于 2012-08-07T12:52:54.610 回答