Java 列表元素的Jaxb-map属性
Hy,我的xml如下所示: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属性,但它看起来并不像我预期的那样工作 以下
<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;