如何匹配int到枚举
我正在从Android中的本机代码以long或int的forms接收返回值,我想要转换或与枚举匹配,为处理目的。 可能吗 ? 怎么样?
如果您完全控制了值和枚举,并且它们是顺序的,则可以使用枚举序号值:
enum Heyo { FirstVal, SecondVal } ...later int systemVal = [whatever]; Heyo enumVal = Heyo.values()[systemVal]; int againSystemVal = enumVal.ordinal();
你可以设置你的枚举,使其具有long或int。
例如:创build这个文件ePasswordType.java
public enum ePasswordType { TEXT(0), NUMBER(1); private int _value; ePasswordType(int Value) { this._value = Value; } public int getValue() { return _value; } public static ePasswordType fromInt(int i) { for (ePasswordType b : ePasswordType .values()) { if (b.getValue() == i) { return b; } } return null; } }
然后你可以像这样访问分配的值:
ePasswordType var = ePasswordType.NUMBER; int ValueOfEnum = var.getValue();
当你只知道int时,得到枚举,使用这个:
ePasswordType t = ePasswordType.fromInt(0);
java中的枚举是非常强大的,因为每个值都可以是它自己的类。