在Java中,我有一个带有属性的类:

@XmlElement(name = "Ability")
protected String Ability;


能力可以是低,中或高。

稍后在代码中,一些未验证的数据需要分配给Ability。

test.setAbility(pdf.get("Ability"));


我应该枚举能力吗?如何使它成为仅当能力是一种枚举类型时才被设置?

最佳答案

在您的情况下,使用枚举将是有益的,您可以使用映射器转换字符串:

public static String mapAbilityEnum(String ability) {
    switch (ability) {
    case "LOW":
        return AbilityEnum.LOW;
    case "MEDIUM":
        return AbilityEnum.MEDIUM;
    case "HIGH":
        return AbilityEnum.HIGH;
    default:
        return foo; (whatever you want the default to be)
    }
}

10-06 10:54