自定义方法的XStream反序列化问题

时间:2013-10-03 18:15:46

标签: java xstream

我的道具课程:

public class Props {
    private static String name; 
    private static float price;

    //normal getters and setters;
}

我的XML

<root>
<Props>
  <name>Test1</name>
  <ownedBy>NULL</ownedBy>
  <price>1000</price>
</Props>
<Props>
  <name>Test2</name>
  <ownedBy>NULL</ownedBy>
  <price>1000</price>
</Props>
</root>

现在当我调用in.readObject();两次(作为我的对象输入流)时,我收到错误:

com.thoughtworks.xstream.converters.ConversionException: Could not set field class  
com.mwerner.main.Props.name : null : Could not set field class 
com.mwerner.main.Props.name : null

我在一个单独的项目中尝试了代码,它运行得很漂亮。现在在更大的主要项目中,我在一个名为initProps();的自定义方法中调用整个事情。那就是当它全部下地狱的时候。为什么呢?

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。

我根据XStream教程编写了一个自定义转换器。对于unmarshal方法,我只为剩余的字段添加了更多reader.MoveDown(); setvalue... reader.MoveUp();级别。