zoukankan      html  css  js  c++  java
  • 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{
    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;
    }
    }

    解决方案

    修改枚举类

    新增一个静态方法,getByType()

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

    转载至 https://www.cnblogs.com/codeclock/p/12564924.html

    假如我的博客对你有用,请你关注我一下,告诉我你来过,你的关注是我前进的动力,希望更多的人记录自己的问题,去帮助别人更是帮助自己避免再次出现这样那样的问题,谢谢你的来过!
  • 相关阅读:
    学习练习 java输入输出流 练习题1
    学习总结 java Iterator迭代器练习
    学习总结 java 输入输出流
    学习记录 java 哈希
    学习记录 java 链表知识
    学习总结 java 异常
    学习练习 java 集合
    web压缩gzip响应
    web乱码问题
    web附件中文名
  • 原文地址:https://www.cnblogs.com/zxy-come-on/p/15131504.html
Copyright © 2011-2022 走看看