Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java将选择转换为枚举_Java_Android_Enums - Fatal编程技术网

Java将选择转换为枚举

Java将选择转换为枚举,java,android,enums,Java,Android,Enums,在简单代码中,我尝试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");

在简单代码中,我尝试
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();
}
问题是
contenttype
内容是值。比如说

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


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

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

// or

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

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

是否有原因不想使用类似a的内容?是否尝试过
ContentTypes.valueOf(ContentType.class,type)
?@PakkuDon我喜欢使用Enum@Ted霍普:不,请稍等test@TedHopp谢谢,先生。解决问题。请回复接受
String name = "FREE";
ContentTypes t = ContentTypes.valueOf(name);

// or

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