通过使用 JAXB v.2.2.7来指定从外部库中定义的类对象的编组/解组是否存在?我想必须定义一个改编,但我怎么能注意到该对象有我的适配器?
E.g。
我使用来自 Joda 库的Interval
。如果我将Interval
对象注释到类中,如下所示:
@XmlElement(name="DateInterval")
protected Interval dateInterval;
然后在编组过程中创建一个空标记,即
<DateInterval/>
当然,这是预期的,因为没有注释Interval
类。
答案 0 :(得分:1)
对于Joda库,您可以为XmlAdapter
等类型创建JAXB Interval
。然后,您可以在包级别引用XmlAdapter
,以便属于该包中的类的该类型的所有映射字段/属性都将应用XmlAdapter
。
@XmlJavaTypeAdapters({
@XmlJavaTypeAdapter(type=DateTime.class,
value=DateTimeAdapter.class),
@XmlJavaTypeAdapter(type=DateMidnight.class,
value=DateMidnightAdapter.class),
@XmlJavaTypeAdapter(type=LocalDate.class,
value=LocalDateAdapter.class),
@XmlJavaTypeAdapter(type=LocalTime.class,
value=LocalTimeAdapter.class),
@XmlJavaTypeAdapter(type=LocalDateTime.class,
value=LocalDateTimeAdapter.class)
})
package blog.jodatime;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters;
import org.joda.time.DateMidnight;
import org.joda.time.DateTime;
import org.joda.time.LocalDate;
import org.joda.time.LocalDateTime;
import org.joda.time.LocalTime;
了解更多信息