【发布时间】:2018-10-04 14:25:23
【问题描述】:
您好,是否可以在 Java 中更改 ENUM 的名称? 例如,我有枚举 -
public enum CloudType {
AZURE, OPENSTACK
}
还有一个班级——
public class Env{
private CloudType cloudType;
}
在 JACKSON 解析期间,如果我给出 -
{
"cloudType":"AZURE"
}
或者
{
"cloudType":"azure"
}
它会给我一个带有cloudType=AZURE 的Env 对象?
有一个线程(Jackson databind enum case insensitive),但我们真的需要做这么多吗? 或者
@XmlEnumValue("azure")
AZURE("azure"),
够了吗?
【问题讨论】:
-
你为什么不简单地尝试一下?
-
这不会改变枚举的名称,是吗?它只是为枚举变量赋值。
-
tl;博士:
MapperFeature.ACCEPT_CASE_INSENSITIVE_ENUMS -
实际上我是直接从 REST 请求体进行序列化,它能够同时处理 Json 和 XML