0

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

2 に答える 2

3

「 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();

Genderから値を取得する場合は、int次を使用できます。

Gender g = Gender.getByIntValue(1);

Genderaから値を取得する場合は、String次を使用できます。

Gender g = Enum.valueOf(Gender, "Male");
于 2013-01-16T12:46:38.463 に答える
0

それはあなたが望むものですか?

switch (genderVar) {
 case Unknown:
 case Male:
 case Female:
 default:
}
于 2013-01-16T12:48:34.623 に答える