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 に答える