我想创建将 xml 作为字符串的构造函数,并且所有变量都将从中填充。该 xml 是由 XStream 创建的,所以我认为这样的东西会起作用,但不知道要在左侧添加什么:
public xmlpacket(String xml)
{
XStream xstream = new XStream(new DomDriver());
.... = (xmlpacket)xstream.fromXML(xml);
}
谢谢
我想创建将 xml 作为字符串的构造函数,并且所有变量都将从中填充。该 xml 是由 XStream 创建的,所以我认为这样的东西会起作用,但不知道要在左侧添加什么:
public xmlpacket(String xml)
{
XStream xstream = new XStream(new DomDriver());
.... = (xmlpacket)xstream.fromXML(xml);
}
谢谢
您可以使用静态方法。
public static XMLPacket unmarshall(String xml) {
XStream xstream = new XStream(new DomDriver());
return (XMLPacket)xstream.fromXML(xml);
}
请注意我是如何重命名您的课程的。现在它遵守 Java 命名约定。
如果您已经创建了所需的类和这些类的 xstream 别名,那么
XMLPacket packet = (XMLPacket)xstream.fromXML(xml);
但是您可能应该为此创建一个方法,而不是在构造函数中执行此操作。
XStream 将为您创建对象的实例。因此,除非您想将 XStream 创建的数据包的所有属性复制到您正在构建的数据包中,否则在构造函数中这样做是没有意义的。改为创建工厂方法:
public static XmlPacket fromXml(String xml) {
XStream xstream = new XStream(new DomDriver());
return (XmlPacket) xstream.fromXML(xml);
}