Java 将 Select 转换为枚举

Java convert Select to Enum

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

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

枚举为:

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);

使用

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

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

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

// or

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

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