【发布时间】:2011-12-21 05:35:16
【问题描述】:
我从 Android 中的本机代码接收到 long 或 int 形式的返回值,我想将其转换或与 enum 匹配,以进行处理。可能吗 ? 怎么样?
【问题讨论】:
标签: java android enums android-ndk
我从 Android 中的本机代码接收到 long 或 int 形式的返回值,我想将其转换或与 enum 匹配,以进行处理。可能吗 ? 怎么样?
【问题讨论】:
标签: java android enums android-ndk
如果您可以完全控制值和枚举,并且它们是连续的,则可以使用枚举序数值:
enum Heyo
{
FirstVal, SecondVal
}
...later
int systemVal = [whatever];
Heyo enumVal = Heyo.values()[systemVal];
int againSystemVal = enumVal.ordinal();
【讨论】:
您可以设置您的枚举,使其内置 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 中的枚举非常强大,因为每个值都可以是自己的类。
【讨论】: