我正在尝试使用 JAXB 编组一个如下所示的类
@javax.xml.bind.annotation.XmlType(propOrder = {"first", "last"})
public class Person
{
private String first;
private String last;
public String getFirst(){
return first;
}
public void setFirst(String first){
this.first = first;
}
public String getLast(){
return last;
}
public void setLast(String last){
this.first = last;
}
public String getName(){
return this.first + this.last;
}
}
当我尝试使用以下方法获取 JaxbContext 时:
JAXBContext.newInstance(Person.class);
我得到以下异常:
com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 182 counts of IllegalAnnotationExceptions
Property name is present but not specified in @XmlType.propOrder
this problem is related to the following location:
at public java.lang.String myPackage.Person.getName()
at myPackage.Person
它与此处发布的问题非常相似:
https://www.java.net//node/702784
解决方案是在哪里添加
@XmlTransient
到犯法的方法。但是,我无法编辑 java 类来更新注释。
有什么想法可以解决这个问题吗?
我最终使用了一个名为 JAXBIntroductions 的库,它允许我在运行时临时引入注释,从而在不造成过多开销的情况下缓解问题。感谢所有看过的人