Java JAXB:您必须指定要包含的每个字段吗?
我有一个我想处理的类,这个类用Java JAXB:您必须指定要包含的每个字段吗?,java,jaxb,marshalling,Java,Jaxb,Marshalling,我有一个我想处理的类,这个类用@XmlRootElement注释。当我整理它的一个实例时,JAXB创建了一个XML,其中除了根元素之外没有任何内容。当我手动注释类的每个字段时,所有字段都包括在内。似乎必须对每个字段进行注释,才能将其包含在输出中。有人能证实这一点吗?如果是这样的话,为什么当您必须配置每个字段时,JAXB就被称为configurationbyexception 不起作用: @XmlRootElement public class Person { private int n
@XmlRootElement
注释。当我整理它的一个实例时,JAXB
创建了一个XML,其中除了根元素之外没有任何内容。当我手动注释类的每个字段时,所有字段都包括在内。似乎必须对每个字段进行注释,才能将其包含在输出中。有人能证实这一点吗?如果是这样的话,为什么当您必须配置每个字段时,JAXB
就被称为configurationbyexception
不起作用:
@XmlRootElement
public class Person {
private int name;
private String email;
private String tel;
//constructor getters/setters
}
产生
下面的示例包括输出中的所有字段
@XmlRootElement
public class Person {
@XmlElement private int name;
@XmlElement private String email;
@XmlElement private String tel;
//constructor getters/setters
}
实现根本不需要任何注释:
public int getName() {
return name;
}
public void setName(int name) {
this.name = name;
}
更新
我显然是深夜编码的受害者。生成时 getters/setters我只选择getters,而JAXB不喜欢它 全部 默认情况下,JAXB不会将只有getter的属性作为映射处理。仅使用getter,您就需要使用
@xmlement
进行注释
@XmlElement
public int getName() {
return name;
}
你能发布这个类的代码吗?@MaxFichtelmann更新了!我无法复制你的问题。你能看看并说出你的不同之处吗?它打印
a@b11234
我显然是深夜编码的受害者。在生成getter/setter时,我只选择了getter,而JAXB根本不喜欢它。