Java转换选择为枚举

时间:2015-04-27 06:47:53

标签: java android enums

在简单的代码中我尝试enum而不是select,例如我想转换此代码:

switch (name) {
    case "1":
        return "a";
    break;
    case "2":
        return "b";
    case "3":
        return "c";
}

以Enum为:

public enum ContentTypes {
    FREE("1"),
    PAYABLE("2"),
    INCOME("3");

    private String name;
    ContentTypes(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
}

public String getType(String type) {
    return (ContentTypes) type.getName();
}

问题是ContentTypes内容是值。例如

String test = "FREE";
getType(test);

2 个答案:

答案 0 :(得分:1)

您声明的每个enum类型都会自动获取内置的静态valueOf()方法。您还可以使用静态Enum.valueOf()方法。

String name = "FREE";
ContentTypes t = ContentTypes.valueOf(name);

// or

ContentTypes t = Enum.valueOf(ContentTypes.class, name);

如果我了解您的要求,您可以在其中一个API调用上构建解决方案。请注意,这些方法区分大小写,如果IllegalArgumentException与枚举常量不匹配,则会抛出name

答案 1 :(得分:0)

使用

String name = ContentTypes.valueOf("FREE").name;