2012-05-03 46 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

如果你創建你所需要的類和XStream的別名類,然後

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

但你可能應該創建一個方法,這和不能做在構造函數中。

相關問題