【问题标题】:package-info.class content in jaxb contextjaxb 上下文中的 package-info.class 内容
【发布时间】:2012-04-18 08:51:29
【问题描述】:

嘿嘿,

我目前在使用 JAXB 序列化过程时遇到问题。 jaxb 版本 2,用于序列化属性。

是否可以在“package-info.class”中添加多个包级别的注释?目前我正在手动创建这个文件,其中已经有一个“适配器条目”,它必须留在那里。虽然我像白痴一样搜索,但每个示例都只有 一个 条目,但我想这是不可能的,因为语义应该更灵活,允许多个包级别注释而不是一个。

问题是,我在类中的每个映射成员上使用 @XmlJavaTypeAdapter(AdapterForMap.class),但映射实际上包含另一种类型(作为值),比如说 Font,它需要有一个适当的 xml 适配器。目前我无法使用这种字体适配器,因为 'package-info.class' 已经有一个条目。

提前致谢! :)

【问题讨论】:

标签: java jaxb


【解决方案1】:

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

完整示例

【讨论】:

  • 是的,太好了,谢谢,这正是我所需要的,虽然我已经阅读了你链接的这个例子.. 显然我太愚蠢了,无法在文章末尾提取重要部分;- /
猜你喜欢
  • 2011-04-01
  • 2011-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 2011-11-22
  • 1970-01-01
相关资源
最近更新 更多