Java基础 - 枚举类
大约 1 分钟
Java基础 - 枚举类
本文介绍 Java 枚举类的相关知识
枚举类的介绍
Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等
枚举类的使用规则
类的对象是确定的有限个数
当需要定义一组常量时,建议使用枚举
如果枚举类中只有一个对象,则可以作为单例模式的实现方法
枚举类不能被继承
枚举类不能被单独的new创建对象
枚举类的构造器是私有的
枚举类的应用场景
- 星期: Monday(星期一)、Tuesday(星期二)、Wednesday(星期三)、Thursday(星期四)、Firday(星期五)、Saturday(星期六)、Sunday(星期日)
- 性别: Man(男)、Woman(女)
- 季节: Spring(春天)、Summer(夏天)、Autumn(秋天)、Winter(冬天)
- 支付方式: Cash(现金)、WeChatPay(微信)、Alipay(支付宝)、BankCard(银行卡)、CreditCard(信用卡)
- 订单状态: Nonpayment(未付款)、Paid(已付款)、Fulfilled(已配货)、Delivered(已发货)、Return(退货)、Checked(已确认)
- 线程状态: Establish(创建)、Ready(就绪)、Run(运行)、Obstruct(阻塞)、Die(死亡)
- 等等……
使用案例
/**
* redis的key的管理类
* 约定:一个redis key 映射一个枚举实例
*/
@Getter
public enum RedisKeys {
//用户登录key 实例
USER_LOGIN_TOKEN("user_login_token", 30 * 60L ),
//注册短信验证码key 实例
REGIST_VERIFGY_CODE("regist_verifgy_code", 5 * 60L );
private String prefix; // key的前缀
private Long time; //key有效时间, 单位是s
private RedisKeys(String prefix, Long time){
this.prefix = prefix;
this.time = time;
}
//拼接出完整redis的key
public String join(String... values){
StringBuilder sb = new StringBuilder(80);
sb.append(this.prefix);
for (String value : values) {
sb.append(":").append(value);
}
return sb.toString();
}
}