0

我想创建将 xml 作为字符串的构造函数,并且所有变量都将从中填充。该 xml 是由 XStream 创建的,所以我认为这样的东西会起作用,但不知道要在左侧添加什么:

    public xmlpacket(String xml)
    {
        XStream xstream = new XStream(new DomDriver());
       .... =  (xmlpacket)xstream.fromXML(xml);
    }

谢谢

4

3 回答 3

1

您可以使用静态方法。

public static XMLPacket unmarshall(String xml) {
    XStream xstream = new XStream(new DomDriver());

    return (XMLPacket)xstream.fromXML(xml);

}

请注意我是如何重命名您的课程的。现在它遵守 Java 命名约定。

于 2012-05-03T10:59:07.893 回答
1

如果您已经创建了所需的类和这些类的 xstream 别名,那么

XMLPacket packet = (XMLPacket)xstream.fromXML(xml);

但是您可能应该为此创建一个方法,而不是在构造函数中执行此操作。

于 2012-05-03T11:04:32.097 回答
0

XStream 将为您创建对象的实例。因此,除非您想将 XStream 创建的数据包的所有属性复制到您正在构建的数据包中,否则在构造函数中这样做是没有意义的。改为创建工厂方法:

public static XmlPacket fromXml(String xml) {
    XStream xstream = new XStream(new DomDriver());
    return (XmlPacket) xstream.fromXML(xml);
}
于 2012-05-03T11:04:11.330 回答