Java:JAXB 和使用 char

标签 java jaxb char primitive java-metro-framework

我正在使用 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/

相关文章:

java - AND 是否优先于 OR?

java - jaxb2-maven-plugin 将类路径添加到生成的源

c - 如何在 C 中设置 char[1024] 的第 513 位?

c - 指向无符号整数的无符号字符

java - 负向回顾 : How can I stop matches when the suffix is repeated?

java - 从java中的RestController返回多种(xml和json)格式

java - Hibernate查询表中不再存在的字段

java - JAXB unmarshaller.unmarshal 何时返回 JAXBElement<MySchemaObject> 或 MySchemaObject?

java - 字节数组在 JAXB 类中不起作用

C++ 指针算术和串联问题