Java switch 中如何使用枚举?
enum HobbyEnum{
SIGN("唱","SING"),
JUMP("跳","JUMP"),
RAP("Rap","RAP"),
OTHER("未知","OTHER");
private String word;
private String type;
HobbyEnum(String word, String type){
this.word = word;
this.type = type;
}
public String getWord() {
return word;
}
public void setWord(String word) {
this.word = word;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public static HobbyEnum getByType(String type){
for (HobbyEnum constants : values()) {
if (constants.getType().equalsIgnoreCase(type)) {
return constants;
}
}
return OTHER;
}
}
想使用switch去替换掉if-else,想到Hobby这个类里面的type属性正好是个枚举,就想用枚举去实现,结果发现这样是有问题的。
枚举类
public enum HobbyEnum{ public void setWord(String word) { public String getType() { public void setType(String type) { |
解决方案
修改枚举类
新增一个静态方法,getByType()
enum HobbyEnum{ private String word; HobbyEnum(String word, String type){ public String getWord() { public void setWord(String word) { public String getType() { public void setType(String type) { public static HobbyEnum getByType(String type){ |
转载至 https://www.cnblogs.com/codeclock/p/12564924.html