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