01: Java–枚举类型(枚举类型介绍 & 定义枚举类型 & 枚举类型的使用 & 枚举类型的注意事项 & 遍历枚举项)
02: Java–枚举类型(枚举类型实现接口 & 枚举类型之间的比较 & 枚举类型用于switch语句)
1. 枚举类型
1.1 枚举类型实现接口
示例:
package character1;
interface SysTemCode {
int getCode();
String getDesc();
}
enum CodeEnum implements SysTemCode {
ERROR(-1, "系统异常"),
FAILURE(0, "操作失败"),
SUCCESSFUL(1, "操作成功");
private final int code;
private final String desc;
CodeEnum(int code, String desc) {
this.code = code;
this.desc = desc;
}
@Override
public int getCode() {
return this.code;
}
@Override
public String getDesc() {
return this.desc;
}
}
public class Test {
public static void main(String[] args) {
System.out.println("获取错误状态码的信息: ");
System.out.println("code: " + CodeEnum.ERROR.getCode());
System.out.println("desc: " + CodeEnum.ERROR.getDesc());
System.out.println("因为实现了SysTemCode接口, 所以枚举类型可以向上转型为SysTemCode类型");
SysTemCode error = CodeEnum.ERROR;
System.out.println("code: " + error.getCode());
System.out.println("desc: " + error.getDesc());
}
}
运行结果:

1.2 枚举类型之间的比较
- 枚举类型之间可以通过双等号来进行比较,因为枚举类型是一个常量,在内存中的地址只有一份
示例:
package character2;
public enum PayEnum {
WEI_XIN_PAY("weixin", "https://weixin.qq.com/"),
ZHI_FU_BAO_PAY("zhifubao", "https://www.alipay.com/");
private final String payName;
private final String payUrl;
private PayEnum(String payName, String payUrl) {
this.payName = payName;
this.payUrl = payUrl;
}
public String getPayName() {
return payName;
}
public String getPayUrl() {
return payUrl;
}
}
class Test {
public static void main(String[] args) {
PayEnum muEnum = PayEnum.WEI_XIN_PAY;
System.out.println("muEnum == PayEnum.WEI_XIN_PAY: " + (muEnum == PayEnum.WEI_XIN_PAY));
System.out.println("PayEnum.WEI_XIN_PAY == PayEnum.ZHI_FU_BAO_PAY: " + (PayEnum.WEI_XIN_PAY == PayEnum.ZHI_FU_BAO_PAY));
}
}
运行结果:

1.3 枚举类型用于switch语句
示例:
package character2;
public enum PayEnum {
WEI_XIN_PAY("weixin", "https://weixin.qq.com/"),
ZHI_FU_BAO_PAY("zhifubao", "https://www.alipay.com/");
private final String payName;
private final String payUrl;
private PayEnum(String payName, String payUrl) {
this.payName = payName;
this.payUrl = payUrl;
}
public String getPayName() {
return payName;
}
public String getPayUrl() {
return payUrl;
}
}
class Test {
public static void main(String[] args) {
int random = (int) (Math.random() * 101);
PayEnum myEnum;
if (random % 2 == 0) {
myEnum = PayEnum.WEI_XIN_PAY;
} else {
myEnum = PayEnum.ZHI_FU_BAO_PAY;
}
switch (myEnum) {
case WEI_XIN_PAY:
System.out.println("微信支付...");
break;
case ZHI_FU_BAO_PAY:
System.out.println("支付宝支付...");
break;
default:
System.out.println("支付异常!!!");
break;
}
}
}
运行结果:

|