gpt4 book ai didi

java - JAXB:您是否必须指定要包含的每个字段?

转载 作者:太空宇宙 更新时间:2023-11-04 06:58:25 25 4
gpt4 key购买 nike

我有一个想要编码的类,该类注释有 @XmlRootElement 。当我编码它的一个实例时,JAXB创建一个 XML,其中除了根元素之外什么都没有。当我手动注释类(class)的每个字段时,所有字段都会包含在内。似乎您必须注释每个字段才能将其包含在输出中。有人可以证实这一点吗?如果是这样,为什么是JAXB那么据说是configuration-by-exception什么时候必须配置每个字段?

不起作用:

@XmlRootElement
public class Person {
private int name;
private String email;
private String tel;
//constructor getters/setters
}

产生<?xml version="1.0" encoding="UTF-8" standalone="yes"?><person/> .

下面的示例包含输出中的所有字段。

@XmlRootElement
public class Person {
@XmlElement private int name;
@XmlElement private String email;
@XmlElement private String tel;
//constructor getters/setters
}

最佳答案

JAXB (JSR-222)实现根本不需要任何注释:

我怀疑你的 getter/setter 对有问题。您需要确保它们如下所示:

public int getName() {
return name;
}

public void setName(int name) {
this.name = name;
}
<小时/>

更新

I was apparently a victim of late night coding. When generating getters/setters I only chose getters and that JAXB did not like at all.

默认情况下,JAXB 不会将仅具有 getter 的属性视为映射的。仅使用 getter 时,您需要使用 @XmlElement 进行注释。

@XmlElement
public int getName() {
return name;
}

关于java - JAXB:您是否必须指定要包含的每个字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22431202/

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