Java 列表元素的Jaxb-map属性

Java 列表元素的Jaxb-map属性,java,xml,jaxb,Java,Xml,Jaxb,Hy,我的xml如下所示: <forecast> <time day="2014-06-02"> <symbol></symbol> </time> <time day="2014-06-03"> <symbol></symbol> </time> </forecast> 我需要为每个“时间”对象设置MapDay属性,但它看起来并不像我预期的那样工作 以下

Hy,我的xml如下所示:

<forecast>
 <time day="2014-06-02">
  <symbol></symbol>
 </time>
 <time day="2014-06-03">
  <symbol></symbol>
 </time>
</forecast>

我需要为每个“时间”对象设置MapDay属性,但它看起来并不像我预期的那样工作

以下是我的课程(java):

公共类预测{
@XmlElement
公开上市时间;
}
公共类天气事件{
@xmldattribute(name=“day”)
@XmlJavaTypeAdapter(DateAdapter.class)
公众日期日;
@XmlElement
公共符号;
}
公共类DateAdapter扩展了XmlAdapter{
private final SimpleDataFormat dateFormat=新SimpleDataFormat(
“yyyy-MM-dd'HH:MM:ss”);
@凌驾
公共字符串封送处理程序(日期v)引发异常{
返回日期格式。格式(v);
}
@凌驾
公共日期解组(字符串v)引发异常{
Date-Date=dateFormat.parse(v);
如果(日期==null){
SimpleDataFormat SimplerFormat=新SimpleDataFormat(“yyyy-MM-dd”);
date=simplierFormat.parse(v);
}
返回日期;
}
}

如何正确映射“day”属性以使其不为null?

下面的一行将抛出一个
ParseException
,并退出该方法,当日期看起来像:
2014-06-02
时,永远不会进入下面的逻辑

Date date = dateFormat.parse(v);
您需要捕获异常并忽略它,然后对其应用第二个格式化程序

Date date = null;
try {
    Date date = dateFormat.parse(v);
} catch(ParseException e) {
    SimpleDateFormat simplierFormat = new SimpleDateFormat("yyyy-MM-dd");
    date = simplierFormat.parse(v);
}
return date;
Date date = null;
try {
    Date date = dateFormat.parse(v);
} catch(ParseException e) {
    SimpleDateFormat simplierFormat = new SimpleDateFormat("yyyy-MM-dd");
    date = simplierFormat.parse(v);
}
return date;