2

是否存在通过使用JAXB v.2.2.7 来指定来自外部库中定义的类的对象的编组/解组的方法?我想必须定义一个adapted,但是我怎么能注意到这个对象有我的adapter?

例如,我使用Interval, 来自Joda图书馆。如果我将对象注释Interval到一个类中,如下所示:

@XmlElement(name="DateInterval")
protected Interval dateInterval;

然后在编组过程中创建一个空标签,即

<DateInterval/>

当然,这是意料之中的,因为没有人对Interval课程进行注释。

4

1 回答 1

2

对于 Joda 库,您可以XmlAdapter为诸如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;

了解更多信息

于 2013-07-26T15:35:08.297 回答