Xstream(Java)未正确地将Xml字符串反序列化为对象

Xstream(Java)未正确地将Xml字符串反序列化为对象,java,xml,xstream,Java,Xml,Xstream,我有以下XML字符串,我正试图将其反序列化为一个对象,但最终结果不正确 XML字符串为: ”; 我尝试反序列化到的对象是: public class Header implements Serializable { private static final long serialVersionUID = 1L; private List<Session> sessions = new ArrayList<Session>(); private List<Sequ

我有以下XML字符串,我正试图将其反序列化为一个对象,但最终结果不正确

XML字符串为:
”;

我尝试反序列化到的对象是:

public class Header implements Serializable {

private static final long serialVersionUID = 1L;

private List<Session> sessions = new ArrayList<Session>();
private List<Sequence> sequences = new ArrayList<Sequence>();

public List<Session> getSession() {
    return sessions;
}

public void setSession(Session session) {
    this.sessions.add(session);
}

public List<Sequence> getSequence() {
    return sequences;
}

public void setSequence(Sequence sequence) {
    this.sequences.add(sequence);
    }

}
反序列化代码为:

    XStream xstream = new XStream();

    xstream.alias("Header", Header.class);
    xstream.alias("Session", Session.class);
    xstream.alias("Sequence", Sequence.class);

    xstream.addImplicitCollection(Header.class, "sessions");
    xstream.addImplicitCollection(Header.class, "sequences");

    xstream.useAttributeFor(Session.class, "value");
    xstream.useAttributeFor(Sequence.class, "value");
    System.out.println("msg: " + msg);

    Header result = (Header) xstream.fromXML(msg);
当我对结果对象执行
toString()
时,我看到:

Header [sessions=null, sequences=[Sequence [value=bbb-mySeq], Session [value=aaa-myValue]]]

如您所见,顺序中不应有会话。提前感谢您的帮助。

将您的呼叫更改为addImplicitCollection:

xstream.addImplicitCollection(Header.class, "sessions", Session.class);
xstream.addImplicitCollection(Header.class, "sequences", Sequence.class);

波阿斯(Boaz)

我真希望我能给出不止一个+1的答案……它回答了我几个小时来一直试图解决的一个问题。:)
xstream.addImplicitCollection(Header.class, "sessions", Session.class);
xstream.addImplicitCollection(Header.class, "sequences", Sequence.class);