我正在从Android中的本机代码以long或int的形式接收返回值,我想要将其与enum进行转换或匹配,以用于处理目的。可能吗 ? 如何?如何将int与枚举相匹配
43
A
回答
57
是否有价值观和枚举的完全控制,而且他们的顺序,你可以使用枚举序号值:
enum Heyo
{
FirstVal, SecondVal
}
...later
int systemVal = [whatever];
Heyo enumVal = Heyo.values()[systemVal];
int againSystemVal = enumVal.ordinal();
50
您可以设置您的枚举,使其具有内置的long或int。
如:创建这个文件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中的枚举是ve强大,因为每个价值都可以成为自己的阶级。
相关问题
- 1. 如何使用linq将枚举值与某些枚举值相匹配
- 2. 将字符串与枚举匹配?
- 3. CLR如何将C++文件访问常量与C#枚举相匹配?
- 4. 如何将枚举值转换为int?
- 5. 如何投放枚举INT
- 6. Sqlalchemy枚举/类型匹配?
- 7. 枚举字符串匹配
- 8. 如何检查枚举是否与模式不匹配?
- 9. 将多个枚举与单个护卫案匹配?
- 10. Serialize枚举为int
- 11. 如何将编译后的类名与Java中的枚举成员匹配?
- 12. 如何从第一个匹配枚举类型获得枚举常量
- 13. 如何仅匹配某些枚举,而不是枚举的所有变体?
- 14. c#JSONPatch不与int和枚举工作
- 15. 如何转换枚举为int
- 16. 如何转换int *和枚举*?
- 17. 模式匹配在包含枚举
- 18. 斯卡拉匹配/比较枚举
- 19. 枚举和字符串匹配
- 20. Groovy的枚举构造匹配
- 21. 将C++枚举转换为python int
- 22. 如何将枚举与从C分配的值连接到Java?
- 23. Spring如何与枚举
- 24. 解析字符串如果我有一个枚举匹配枚举值
- 25. 爪哇 - 转变INT枚举
- 26. 涉及枚举和Int
- 27. 获取枚举的INT值[]
- 28. 使用int值枚举?
- 29. 枚举vs int标志?
- 30. 生成基地枚举int
不推荐使用序号来获取枚举的“值”。相反,请改用实例字段。请参阅Josh Bloch的Effective Java第2版中的第31项。 –