Java 在外部Jar/类上使用@XmlElementWrapper的替代方法

Java 在外部Jar/类上使用@XmlElementWrapper的替代方法,java,jaxb,Java,Jaxb,TL;DR 如何使用外部jar中的类的@xmlementwrapper注释来“伪造” 更多详细信息 整个场景有点复杂,有很多遗留代码我不想更新,所以请耐心等待。。。在我的项目中,另一个团队给了我们一个jar文件。他们无法为我添加@xmlementwrapper,因为此代码是自动生成的,并且没有任何注释。在这段代码中,有许多类都具有指向其他类的类型化数组 我的问题发生在尝试封送/取消封送这些类时。如果类中的类型化数组为空,则XML将不包含该属性的节点 例如,如果外部类如下所示: public cl

TL;DR

如何使用外部jar中的类的
@xmlementwrapper
注释来“伪造”

更多详细信息

整个场景有点复杂,有很多遗留代码我不想更新,所以请耐心等待。。。在我的项目中,另一个团队给了我们一个jar文件。他们无法为我添加
@xmlementwrapper
,因为此代码是自动生成的,并且没有任何注释。在这段代码中,有许多类都具有指向其他类的类型化数组

我的问题发生在尝试封送/取消封送这些类时。如果类中的类型化数组为空,则XML将不包含该属性的节点

例如,如果外部类如下所示:

public class MyClass {
    private OtherClass[] myArray;
    // Getter & Setter also
}
<MyClass>
  <OtherClass>...</OtherClass>
  <OtherClass>...</OtherClass>
  <OtherClass>...</OtherClass>
  <!-- More attributes here... -->
</MyClass>
生成的XML如下所示:

public class MyClass {
    private OtherClass[] myArray;
    // Getter & Setter also
}
<MyClass>
  <OtherClass>...</OtherClass>
  <OtherClass>...</OtherClass>
  <OtherClass>...</OtherClass>
  <!-- More attributes here... -->
</MyClass>
因此,当XML被解组时,
OtherClass[]myArray
null
,我可以看到一个很好的堆栈跟踪

在理想情况下,我会将
@xmlementwrapper
添加到
OtherClass[]myArray
的定义中,但正如我所说,这是一个外部类,不能以这种方式编辑

有办法解决这个问题吗?我已经搜索了一种使用JAXB绑定的方法,但到目前为止,我的搜索没有结果


任何指针都将非常受欢迎(即使答案是“无法完成”)。

回到XML模式而不是注释是否可行?就我个人而言,我更愿意做其他事情:使用字节码操作来添加注释来创建新的JAR应该更简单。不幸的是,没有。最终,我放弃了,只是在一些地方添加了
if(xxx!=null){…}
。在这种情况下我能做的最好的事情(预算限制…)。