繁体   English   中英

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

[英]Java constructor with method that creates instance of that object

我想创建一个构造函数,它将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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM