您好,我有一个 Java 枚举,我想从 XML 来回序列化一个包含枚举值的变量以实现持久性。我的枚举是这样定义的...
public enum e_Type
{
e_Unknown,
e_Categoric,
e_Numeric
}
我的变量是这样声明的...
private e_Type type;
我希望它进入这样的 XML 标记中......
<type>value</type>
在 XML 中持久保存枚举值的最佳实践是什么?
最佳答案
看看 JAXB 注释,它是 JDK 的一部分:
public static void main(String[] args) throws Exception {
JAXBContext context = JAXBContext.newInstance(Foo.class);
StringWriter sw = new StringWriter();
context.createMarshaller().marshal(new Foo(), sw);
System.out.println(sw);
}
@XmlRootElement
public static class Foo {
@XmlElement
private e_Type type = e_Type.e_Unknown;
}
@XmlEnum
public enum e_Type {
e_Unknown,
e_Categoric,
e_Numeric
}
您可以进一步自定义输出,例如如果您希望外部 XML 表示与内部 Java 枚举项名称不同:
@XmlEnumValue("UNKNOWN")
e_Unknown
顺便说一句:对于 java 类/枚举使用大写名称是一个非常严格的约定
关于java - 将 Java 枚举序列化为 XML 的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/589732/