我正在使用 JAXB 开发一个项目,但是我遇到了一个关于 JAXB 和 char 数据类型的小问题。
char gender = 'M';
编码后翻译成:
<gender>77</gender>
所以我认为 char 映射为整数,但我只是想将其映射为 String。我怎样才能做到这一点?有可能吗?
最佳答案
经过一些试验,似乎无法配置 JAXB 以正确处理原始字符。不过,我很难接受。
我已经尝试定义一个 XmlAdaptor
以尝试将其强制转换为一个字符串,但运行时似乎只接受在对象类型而非基元上注释的适配器。
我能想到的唯一解决方法是用 @XmlTransient
标记 char 字段,然后编写获取和设置值的 getter 和 setter 作为字符串:
@XmlTransient
char gender = 'M';
@XmlElement(name="gender")
public void setGenderAsString(String gender) {
this.gender = gender.charAt(0);
}
public String getGenderAsString() {
return String.valueOf(gender);
}
不是很好,我承认,但除了将您的 char 字段实际更改为 String 之外,这就是我所拥有的。
关于Java:JAXB 和使用 char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1465946/