我開始瞭解球衣如何與JAXB一起工作。但今天我面對我想要的馬歇爾地圖(日期,列表)條目的具體情況:澤西馬歇爾地圖<Date,List>
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class MyClass{
@XmlJavaTypeAdapter(MapAdapter.class)
private Map<Date,List<MyObject>> = new TreeMap<Date,List<MyObject>>(new DateCompareDesc());
}
這裏的目標是馬歇爾地圖其條目和其相應的MyObject的列表中選擇一個日期。該地圖按降序排列。
爲此我實現了一個適配器映射(MapAdapter,遵循@Blaise Doughan的教程,http://blog.bdoughan.com/2010/07/xmladapter-jaxbs-secret-weapon.html)。問題出在Date鍵上。我有一個錯誤:無法marshall java.util.Date。所以我想這個新的日期適配器:
public class DateAdapter extends XmlAdapter<String, Date> {
@Override
public Date unmarshal(String v) throws Exception {
//not implemented
}
@Override
public String marshal(Date v) throws Exception {
return v.toString();
}
}
我在哪裏可以添加@XmlJavaTypeAdapter(DateAdapter.class),這樣可以澤西日期marhsall關鍵我TreeMap的?
謝謝。
嗨Blaise,謝謝你的迴應。在我的情況下,我有一個地圖。日期和列表不是來自另一個課程,我可以添加適當的註釋。那麼是不是可以註釋該映射來修改日期和列表? –
Lahniep
2012-01-17 13:19:13
@Lahniep - 您正在使用Map的默認表示形式?你的日期信息又是如何格式化的? – 2012-01-17 13:34:29
是..它是一個TreeMap,日期是用SimpleDateFormat格式化的(「yyyy-MM-dd HH:mm:ss」) – Lahniep 2012-01-17 13:42:32