根据枚举值执行操作

时间:2017-03-11 09:07:06

标签: java enums

我尝试根据枚举值检索值。 基本上,我们说我有以下枚举:

    private enum Auth{

    KEY, PASSWORD, MAIL;    

    public String get(){
        return "";
    }
}

通过执行Auth.KEY.get(),它将返回" mykey",而Auth.MAIL.get()将返回" mymail" 我用谷歌搜索了一下,但我找不到答案,我之前没有尝试过任何事情,因为我完全不知道如何开始。 谢谢你&祝你有个美好的一天

4 个答案:

答案 0 :(得分:1)

只需添加字段和构造函数,如java-docs

中所述

示例代码:

enum Auth {

    KEY("myKey"), PASSWORD("myPass"), MAIL("myMail");    

    private final String identifier;

    Auth(String identifier) {
        this.identifier = identifier;
    }

    public String get(){
        return identifier;
    }
}

另请注意,name()toString()可能有用:另请参阅java-enum-why-use-tostring-instead-of-name

答案 1 :(得分:0)

enum Auth{
private enum Auth{
String value;
KEY("mykey"), PASSWORD("mypassword"),    MAIL(mymail");    

Auth(String value){
thia.value=value;
}
public String get(){
    return value;
}
}

答案 2 :(得分:0)

你需要一个包含enum名称的字符串和一个设置它的构造函数。然后get方法返回如下名称。

 private enum Auth{

    KEY, PASSWORD, MAIL;    
    string name;
    public Auth(string nm) {
      name = nm;
    }
    public String get(){
        return name;
    }
 }

答案 3 :(得分:0)

虽然我强烈建议不要使用以下机制从枚举值中获取类似硬编码String的简单内容,而是将其用于关联java.util.concurrent.TimeUnit中的特定行为,这就是它的方法实现:

private enum Auth {

    KEY {
        public String get() {
            return "mykey";
        } 
    },

    PASSWORD {
        public String get() {
            return "mypassword";
        } 
    },

    MAIL {
        public String get() {
            return "mymail";
        } 
    };

    public abstract String get();

}