gpt4 book ai didi

java - 如何从 XML 绑定(bind)中排除属性

转载 作者:行者123 更新时间:2023-12-01 04:13:26 25 4
gpt4 key购买 nike

我正在尝试使用 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 的库,它允许我在运行时临时引入注释,从而缓解问题,而不会造成太多开销。感谢所有看过的人

<小时/>

最佳答案

如果您无法编辑它们,为什么不创建一个新的 Person 子类并重写该方法以添加 @XmlTransient 注释?

关于java - 如何从 XML 绑定(bind)中排除属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19668765/

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