簡體   English   中英

如何從枚舉中獲取價值?

[英]How to get a value from enum?

如何使用switch語句從該枚舉中生成實際值?

public enum Gender {
    Unknown(0),
    Male(1),
    Female(2);

    private static final SparseArray<Gender> lookupTable = new SparseArray<Gender>();
    static {
        for (final Gender gender : EnumSet.allOf(Gender.class)) {
            lookupTable.put(gender.intValue, gender);
        }
    }

    private final int intValue;

    public static Gender getByIntValue(int val) {
        return lookupTable.get(val);
    }

    private Gender(int intValue) {
        this.intValue = intValue;
    }

    public int getIntValue() {
        return intValue;
    }
}

您用“ 帶有switch語句該枚舉實際值 ”所指的含義並不完全清楚。 所以這是與此枚舉有關的事情:

您可以在switch -statement中使用枚舉,如下所示:

Gender g = ...
switch(g) {
   case Male:
     // Do something for the males
     break;
   case Female:
     // Do something for the females
     break;
   case Unknown:
     // Argh... What to do?!
     break;
}

如果要獲取g的intValue ,可以使用:

int value = g.getIntValue();

如果要從int獲取Gender值,可以使用:

Gender g = Gender.getByIntValue(1);

如果要從String獲取Gender值,則可以使用:

Gender g = Enum.valueOf(Gender, "Male");

那是你要的嗎 ?

switch (genderVar) {
 case Unknown:
 case Male:
 case Female:
 default:
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM