[英]Executing action depending on enum value
我正在嘗試根據枚舉值檢索一個值。 基本上,假設我有以下枚舉:
private enum Auth{
KEY, PASSWORD, MAIL;
public String get(){
return "";
}
}
通過執行 Auth.KEY.get() 它將返回“mykey”,而 Auth.MAIL.get() 將返回“mymail” 我用谷歌搜索了一下但找不到答案,我之前沒有嘗試任何東西因為我完全不知道如何開始。
只需添加一個字段和構造函數,如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
enum Auth{
private enum Auth{
String value;
KEY("mykey"), PASSWORD("mypassword"), MAIL(mymail");
Auth(String value){
thia.value=value;
}
public String get(){
return value;
}
}
您需要有一個包含枚舉名稱的字符串和一個設置它的構造函數。 然后 get 方法返回名稱如下。
private enum Auth{
KEY, PASSWORD, MAIL;
string name;
public Auth(string nm) {
name = nm;
}
public String get(){
return name;
}
}
盡管我強烈建議不要使用以下機制從枚舉值中獲取諸如硬編碼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();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.