我有一个 Android 类,它具有来自异步 HTTP 进程的回调,以及一个带有多个状态代码的枚举:
public abstract class HttpPackage {
public enum StatusCode {
SUCCESS(0),
NOT_FOUND(100),
USERNAME_NOT_FOUND(101),
AUTH_FAILED(110),
SAVE_ERROR(111)
//etc.
private final int mCode;
StatusCode(int i) {
mCode = i;
sByCode.put(i, this);
}
}
private static final HashMap<Integer, StatusCode> sByCode = new HashMap<Integer, StatusCode>();
//...
}
我发现 HttpPackage 类中的回调在enum
构造之前被命中,这意味着当我尝试从静态代码映射中提取状态代码时,它返回 null,并且我的代码认为所有提要都失败了(当他们不是)。为什么这enum
会在回调被击中后构造?