1. 创建枚举类
package com.example.common;
public enum Status {
WAIT_PAY(100, "待支付"),
PAID(200, "已支付"),
WAIT_SHIP(300, "待发货"),
SHIPPED(400, "已发货"),
SHIPPING(500, "运输中"),
RECEIVED(600, "已收货");
private Integer code;
private String name;
Status(Integer code, String name){
this.code = code;
this.name = name;
}
public void setCode(Integer code){
this.code = code;
}
public Integer getCode(){
return code;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
}
2. 使用枚举类
package com.example;
import com.example.common.Status;
public class Demo1 {
private Status status = Status.WAIT_PAY;
public static void main(String[] args) {
Demo1 demo1 = new Demo1();
demo1.testEnum();
}
public void testEnum(){
status = Status.SHIPPED;
switch (status){
case WAIT_PAY:
System.out.printf("这是 WAIT_PAY 的 name 和 code:%s(%d) \n", status.getName(), status.getCode());
break;
case PAID:
System.out.printf("这是 PAID 的 name 和 code:%s(%d) \n", status.getName(), status.getCode());
break;
case WAIT_SHIP:
System.out.printf("这是 WAIT_SHIP 的 name 和 code:%s(%d) \n", status.getName(), status.getCode());
break;
case SHIPPED:
System.out.printf("这是 SHIPPED 的 name 和 code:%s(%d) \n", status.getName(), status.getCode());
break;
case SHIPPING:
System.out.printf("这是 SHIPPING 的 name 和 code:%s(%d) \n", status.getName(), status.getCode());
break;
case RECEIVED:
System.out.printf("这是 RECEIVED 的 name 和 code:%s(%d) \n", status.getName(), status.getCode());
break;
}
}
}
3. 枚举类的常用方法
| 方法名称 | 描述 |
|---|
| values() | 以数组形式返回枚举类型的所有成员 |
| ordinal() | 获取枚举成员的索引位置 |
| valueOf() | 将普通字符串转换为枚举实例 |
| compareTo() | 比较两个枚举成员在定义时的顺序 |