对于我正在进行的项目,我们使用了很多枚举.模型对象本身由许多小类组成; 然后,我们通过JAXB将此模型作为XML序列化到我们的DB.现在,我们希望能够使用枚举中特定方法的返回来序列化我们的枚举值; 给出的:
public enum Qualifier {
FOO("1E", "Foo type document"),
BAR("2", "Bar object");
private String code, description;
public Qualifier(String code, String description) {
this.code = code;
this.description = description;
}
public String getCode() {
return this.code;
}
public String getDescription() {
return this.description;
}
}
Run Code Online (Sandbox Code Playgroud)
目前,当序列化为XML时,我们得到类似的东西:
<qualifier>FOO</qualifier>
Run Code Online (Sandbox Code Playgroud)
这是JAXB处理它的方式.但是,我们需要将值作为getCode()的返回值,并且我们的许多枚举都遵循该约定(使用相应的静态方法通过代码进行查找),因此上面的XML片段如下所示:
<qualifier>1E</qualifier>
Run Code Online (Sandbox Code Playgroud)
代替.我们可以对它进行注释@XmlEnum和@XmlEnumValue,但是这太乏味-一些枚举有多达30个枚举值,和手动编辑这是不好的.我们也在考虑使用自定义序列化器,但我现在想避免走那条路(但如果这是要走的路,那么我没问题).
有什么想法?