gpt4 book ai didi

java - 我用 XmlJavaTypeAdapters 注释什么包信息?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:39:09 28 4
gpt4 key购买 nike

我研究过Blaise Doughan's answer to a question on this subject但还有一个问题。

XmlJavaTypeAdapters 允许您列出一堆 XmlJavaTypeAdapter 注释,每个注释都控制 JAXB 如何将不可绑定(bind)类型映射到可绑定(bind)类型。

您可以在包级别使用此注释。当您这样做时,每个 XmlJavaTypeAdapter 注释都需要完全指定其 type() 属性。

似乎没有要求被注释的包与被改编的不可绑定(bind)类型的包有任何关系。那很方便也很好。

然而,这引出了我的下一个问题:如果带注释的包和正在适配的类型的包之间没有关系,那么 JAXB 如何发现包级别的 XmlJavaTypeAdapters 注释?换句话说,它如何知道要为潜在的 XmlJavaTypeAdapters 注释查询哪些包?我可以在 .ear 文件的 lib 目录中创建一个随机包,比如说,一个 .jar 文件,其中包含一个巨大的 package-info 为我的所有不可绑定(bind)类型标注了所有适配器的类?

最佳答案

当 JAXB 运行时加载 JAXB 注释的类时,它会在与该类相同的包中查找 package-info.java,并检查它以查找包级注释。因此,虽然 XmlJavaTypeAdapters 不必与“不可绑定(bind)”类型驻留在同一个包中,但它确实必须与“可绑定(bind)”类型驻留在同一个包中类型。

例如,假设我在包 X 中有一个 JAXB 注释类 A,它在包中有一个 B 类型的属性。为了绑定(bind) B 属性,假设需要一个类型适配器。该适配器可以在 A 本身中指定,也可以在包 X 中的 package-info.java 中指定。包 Y 几乎是任意的,JAXB 运行时不感兴趣。

我希望这是有道理的。

关于java - 我用 XmlJavaTypeAdapters 注释什么包信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8735737/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com