带有创建该对象实例的方法的Java构造函数

时间:2012-05-03 10:50:53

标签: java xml constructor xstream

我想创建一个构造函数,它将xml作为字符串,所有变量都将从中填充。那个xml是由XStream创建的,所以我认为像这样的东西可以工作,但不知道要添加到左侧:

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

谢谢

3 个答案:

答案 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);
}