2010-06-08 70 views
5

比方說,我有下面的類:自動XML轉換

類Person(VAL姓:字符串,VAL名字:字符串)

有沒有生成該類XML,而無需自動方式手動創建一個toXml()方法?理想情況下,輸出會是這樣的:

 
    <Person> 
     <firstName>John</firstName> 
     <lastName>Smith</lastName> 
    </Person> 

好像應該有辦法做到這一點,而無需手動編寫了這一切,。也許有一個我還沒有找到的特質?

回答

3

不幸的是,我不認爲有這樣一個神奇的特質。你可以使用像XStream這樣的東西來實現這一點。然而,它似乎並沒有自動打印所有的Scala類,所以你可能需要編寫自己的轉換器。在列表的情況下,Someone else已經這麼做了,我想對於你的例子你可能需要類似的東西。

5

對於case類(或其他Product子類),這是一次很容易寫統稱:名稱可以用productPrefix檢索,所有的值通過productIterator是可迭代的,並通過productElementName字段的名稱。

不幸的是,productElementName也只有很短的生命:它是在revision 20958添加和刪除在revision 21223,顯然是因爲它增加太多重量case類(有也是一個open ticket它)。