Java枚举教程快速掌握使用指南
更新时间:2025-05-01 分类:网络技术 浏览量:1
为什么你的代码总被同事吐槽?可能是少了它!
你是否遇到过这样的情况?在判断用户状态时用0、1、2这样的魔法数字,三个月后自己都看不懂代码;处理订单类型时用字符串比较,结果因为拼写错误导致系统崩溃...这些困扰Java新手的难题,其实有个优雅的解决方案——枚举(Enum)!
一、枚举究竟是什么?
想象你有个装糖果的盒子,里面只能放特定口味的糖果。枚举就像这个盒子,它:
- 预先定义好固定数量的常量值
- 比普通常量更安全可靠
- 自带类型检查功能
- 可以添加专属方法和属性
二、手把手创建第一个枚举
// 定义星期枚举
public enum Weekday {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}
使用时就像调用静态常量:
Weekday today = Weekday.MONDAY;
if(today == Weekday.SATURDAY) {
System.out.println("周末快乐!");
}
三、枚举的高级打开方式
1. 给枚举添加超能力
public enum PizzaSize {
SMALL("小号", 25),
MEDIUM("中号", 30),
LARGE("大号", 35);
private String description;
private int diameter;
PizzaSize(String desc, int cm) {
this.description = desc;
this.diameter = cm;
}
public String getDescription() {
return description;
}
public double calculateArea() {
return Math.PI * Math.pow(diameter/2.0, 2);
}
}
2. 实战应用场景
- 代替魔法数字:订单状态、错误代码
- 有限选项集合:颜色类型、支付方式
- 单例模式实现
- 策略模式中的具体策略
四、避开这些常见坑点
- 不要用==比较枚举的序数(ordinal())
- 避免在枚举构造函数中调用外部方法
- 枚举常量必须放在类的最前面
- switch语句处理枚举记得写default分支
小编观点:当你下次准备用final定义常量时,先问问自己——这个值是否属于某个固定集合?如果是,毫不犹豫地抄起枚举这个利器吧!