【发布时间】:2023-03-20 06:56:01
【问题描述】:
我开始了解 jersey 如何与 JAXB 一起工作。但是今天我遇到了一个特殊情况,我想编组一个(日期,列表)条目的地图:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class MyClass{
@XmlJavaTypeAdapter(MapAdapter.class)
private Map<Date,List<MyObject>> = new TreeMap<Date,List<MyObject>>(new DateCompareDesc());
}
这里的目标是编组一个 Map,其条目是一个 Date 及其对应的 MyObject 列表。地图按 desc 顺序排序。
为此,我实现了一个地图适配器(MapAdapter,遵循@Blaise Doughan 的教程,http://blog.bdoughan.com/2010/07/xmladapter-jaxbs-secret-weapon.html)。问题出在日期键上。我有一个错误:无法编组 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) 以便 Jersey 可以将 Date 作为我的 TreeMap 的关键?
谢谢。
【问题讨论】: