结合Android例子理解Java enum
2013-03-15 00:00
387 查看
可以把 enum 看成是一个普通的 class,它们都可以定义一些属性和方法,不同之处是:enum 不能使用 extends 关键字继承其他类,因为 enum 已经继承了 java.lang.Enum(java是单一继承)。
参考自: http://www.cnblogs.com/hemingwang0902/archive/2011/12/29/2306263.html
Android framework 中的例子如下:
From DataConnection.java
public enum FailCause {
NONE(0),
// This series of errors as specified by the standards
// specified in ril.h
OPERATOR_BARRED(0x08),
INSUFFICIENT_RESOURCES(0x1A),
MISSING_UNKNOWN_APN(0x1B),
UNKNOWN_PDP_ADDRESS_TYPE(0x1C),
USER_AUTHENTICATION(0x1D),
...
private final int mErrorCode;
private static final HashMap<Integer, FailCause> sErrorCodeToFailCauseMap;
static {
sErrorCodeToFailCauseMap = new HashMap<Integer, FailCause>();
for (FailCause fc : values()) {
sErrorCodeToFailCauseMap.put(fc.getErrorCode(), fc);
}
}
FailCause(int errorCode) {
mErrorCode = errorCode;
}
int getErrorCode() {
return mErrorCode;
}
public static FailCause fromInt(int errorCode) {
FailCause fc = sErrorCodeToFailCauseMap.get(errorCode);
if (fc == null) {
fc = UNKNOWN;
}
return fc;
}
...
}
如何来使用呢?
FailCause mFailCause = FailCause.NONE;
或FailCause mFailCause = FailCause.fromInt(0x08);
参考自: http://www.cnblogs.com/hemingwang0902/archive/2011/12/29/2306263.html
Android framework 中的例子如下:
From DataConnection.java
public enum FailCause {
NONE(0),
// This series of errors as specified by the standards
// specified in ril.h
OPERATOR_BARRED(0x08),
INSUFFICIENT_RESOURCES(0x1A),
MISSING_UNKNOWN_APN(0x1B),
UNKNOWN_PDP_ADDRESS_TYPE(0x1C),
USER_AUTHENTICATION(0x1D),
...
private final int mErrorCode;
private static final HashMap<Integer, FailCause> sErrorCodeToFailCauseMap;
static {
sErrorCodeToFailCauseMap = new HashMap<Integer, FailCause>();
for (FailCause fc : values()) {
sErrorCodeToFailCauseMap.put(fc.getErrorCode(), fc);
}
}
FailCause(int errorCode) {
mErrorCode = errorCode;
}
int getErrorCode() {
return mErrorCode;
}
public static FailCause fromInt(int errorCode) {
FailCause fc = sErrorCodeToFailCauseMap.get(errorCode);
if (fc == null) {
fc = UNKNOWN;
}
return fc;
}
...
}
如何来使用呢?
FailCause mFailCause = FailCause.NONE;
或FailCause mFailCause = FailCause.fromInt(0x08);
相关文章推荐
- 【Android】Java回调原理并结合Android源码进行理解
- android安全学习之4—结合java中keytool工具理解数字证书
- java多态机制理解以及强制类型转换(结合java与android)
- 一个经典例子让你彻彻底底理解java回调机制
- 线程和线程池的理解与java简单例子
- vc++ 的指针和数组结合理解的最佳例子
- 结合舞蹈更易理解的算法--冒泡排序算法[java代码]
- 一个经典例子让你彻彻底底理解java回调机制
- 一个经典例子让你彻彻底底理解java回调机制
- 深入理解final在Java和Android中修饰局部变量的意义
- 深刻理解Java编程的7个例子
- 结合例子理解适配器模式
- 理解java中的多态,多态的例子
- Java中的字符串(转的,摘录)再结合百度百科常量池的理解
- 一个经典例子让你彻彻底底理解java回调机制
- 一个经典例子让你彻彻底底理解java回调机制
- 结合Java实例代码来理解 AOP--面向切面编程 中的各个术语
- 一个经典例子让你彻彻底底理解java回调机制
- 深入理解Android(3)——Eclipse集成javah和NDK-Builder
- 深刻理解Java编程的7个例子