2012-04-18 59 views
1

Heyho,jaxb環境中的package-info.class內容

我目前在JAXB序列化過程中遇到問題。 jaxb版本2,用於序列化屬性。

是否可以在「package-info.class」中添加多個包級別註釋?目前我手動創建這個文件,其中已經有一個「適配器條目」,它必須留在那裏。儘管我在尋找像一個白癡,但每個例子只有一個條目,但我想這是不可能的,因爲語義應該更加靈活,允許多個包級別註釋而不僅僅是一個。

問題是,我在類的每個地圖成員上使用@XmlJavaTypeAdapter(AdapterForMap.class),但地圖實際上包含另一種類型(作爲值),讓我們說字體,它需要有一個合適的xml適配器。目前我無法使用此類字體適配器,因爲'package-info.class'已經有一個條目。

在此先感謝! :)

+1

你嘗試@XmlJavaTypeAdapters? http://docs.oracle.com/javase/7/docs/api/javax/xml/bind/annotation/adapters/XmlJavaTypeAdapters.html – Puce 2012-04-18 08:55:56

+0

是的。我目前正在使用Blaise Doughan的方法在package-info.class中指定幾個適配器,現在工作正常。當我有一個像Map thens 2012-04-19 11:54:53

回答

3

可以在包級別使用@XmlJavaTypeAdapters來註冊@XmlJavaTypeAdapter的許多實例。

包信息

@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.*; 

對於一個完整的例子

+1

是啊,太好了,謝謝,這就是我所需要的,雖然我已經閱讀過這個例子,你鏈接了..顯然,我太愚蠢了,以提取文章結尾處的重要部分;// – thens 2012-04-19 06:00:18