2012-05-03 8 views
0

xmlを文字列として受け取るコンストラクタを作成したいと思います。そのXMLは、私はこのような何かが働くだろうと思いますが、左側に追加するか知っているドントXStreamのによって作成されます。そのオブジェクトのインスタンスを作成するメソッドを持つJavaコンストラクタ

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

あなたは、静的メソッドを利用することができますあなたの

+0

http://xstream.codehaus.org/tutorial.html – pap

答えて

1

ありがとうございます。

public static XMLPacket unmarshall(String xml) { 
    XStream xstream = new XStream(new DomDriver()); 

    return (XMLPacket)xstream.fromXML(xml); 

} 

クラスの名前を変更したことに注目してください。今はJavaの命名規則に準拠しています。

0

XStreamによってオブジェクトのインスタンスが作成されます。したがって、XStreamで作成されたパケットのすべての属性を構築しているパケットにコピーしない限り、コンストラクタでそれを行うのは意味がありません。

public static XmlPacket fromXml(String xml) { 
    XStream xstream = new XStream(new DomDriver()); 
    return (XmlPacket) xstream.fromXML(xml); 
} 
1

をあなたは

XMLPacket packet = (XMLPacket)xstream.fromXML(xml); 

、あなたが必要なクラスとクラスのためにXStreamのエイリアスを作成しました。しかし、あなたはおそらくそれを行う、このための方法を作成してはならない場合は、次の代わりにファクトリメソッドを作成します。コンストラクタで

関連する問題