如何匹配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中的枚举是非常强大的,因为每个值都可以是它自己的类。