Java-枚举

枚举不带值

1
2
3
enum MobileCodeActionEnum {
MOBILE_LOGIN, THIRD_LOGIN_BIND, CHANGE_PASS
}

使用

1
2
3
4
5
6
7
if (mAuthAct == MobileCodeActionEnum.MOBILE_LOGIN) {
//...
} else if (mAuthAct == MobileCodeActionEnum.THIRD_LOGIN_BIND) {
//...
} else if (mAuthAct == MobileCodeActionEnum.CHANGE_PASS) {
//...
}

枚举带值

枚举带单值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public enum LoginTypeEnum {
ACCOUNT_LOGIN("account_login"), MOBILE_LOGIN("mobile_login"), THIRD_LOGIN("third_login"),
ONE_CLICK_LOGIN("one_click_login"), MOBILE_BIND("mobile_bind"), ACCOUNT_BIND("account_bind");

private final String loginType;
private String title;

LoginTypeEnum(String loginType) {
this.loginType = loginType;
if (TextUtils.equals(loginType, "account_login")) {
title = "密码登录";
} else if (TextUtils.equals(loginType, "mobile_login")) {
title = "手机号登录/注册";
} else if (TextUtils.equals(loginType, "mobile_bind")) {
title = "手机号绑定";
} else if (TextUtils.equals(loginType, "account_bind")) {
title = "账号绑定";
}
}

public String getLoginType() {
return loginType;
}

public String getTitle() {
return title;
}
}

使用

1
2
3
4
5
//其中 mLoginType 是 LoginTypeEnum 类型。
//如 LoginTypeEnum mLoginTyp = LoginTypeEnum.ACCOUNT_LOGIN;
if (mLoginType != LoginTypeEnum.ACCOUNT_LOGIN) {
//...
}

枚举带多值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public enum ApiErrorCodeEnum {
TOKEN_INVALID(-1001, "token失效,请重新登陆"), UNBIND_597_ACCOUNT(-1106, "未绑定597账号!"),
MOBILE_BLACKLISTED(-1107, "该手机已被加入黑名单!"),MOBILE_CODE_AUTH_FAILED(-1109,"手机验证码错误");

private final int code;
private final String msg;

ApiErrorCodeEnum(int code, String msg) {
this.code = code;
this.msg = msg;
}

public int getCode() {
return code;
}

public String getMsg() {
return msg;
}
}

使用

1
2
3
4
5
6
//其中code为int型
if (code == ApiErrorCodeEnum.UNBIND_597_ACCOUNT.getCode()) {
//...
//取枚举中的某个字段的值。如取某个状态的msg值
System.out.println(ApiErrorCodeEnum.UNBIND_597_ACCOUNT.getMsg());
}