在简单的代码中我尝试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);
答案 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;