JDK1.5 才开始有枚举类型,同时Java的switch 语句支持枚举
为什么使用枚举代替常量,因为常量往往含义不清,比如整型1,2,不知道其代表的含义,也加大了代码的后期维护难度,枚举比起常量来说,含义更清晰,更容易理解,结构上也更加紧密
原代码
switch (operationType) {
case 1:
deleteDiskFilesByFilePathAndFileName(filePath.toString(), fileName);
break;
case 2:
updateDiskFileStatus(filePath.toString(), fileName);
break;
default:
break;
}
定义枚举类
public enum DiskFileOperationTypeEnum {
CLEAN_OLD_DISKFILE(1),
UPDATE_DISKFILE_STATUS(2);
private int value = 0;
//重写构造方法,使其满足自身业务
private DiskFileOperationTypeEnum(int value) {
this.value = value;
}
//手写的从int到enum的转换函数,传入int值,获取对应的枚举值
public static DiskFileOperationTypeEnum valueOf(int value) {
switch (value) {
case 1:
return CLEAN_OLD_DISKFILE;
case 2:
return UPDATE_DISKFILE_STATUS;
default:
return null;
}
}
public int value() {//获取枚举值对应的数值
return this.value;
}
}
代替原来的写法
DiskFileOperationTypeEnum diskFileOperationTypeEnum = DiskFileOperationTypeEnum.valueOf(operationType);
switch (diskFileOperationTypeEnum) {
case CLEAN_OLD_DISKFILE:
deleteDiskFilesByFilePathAndFileName(filePath.toString(), fileName);
break;
case UPDATE_DISKFILE_STATUS:
updateDiskFileStatus(filePath.toString(), fileName);
break;
default:
break;
}
也可以通过枚举值的下标来分别对应0,1,2,3…的整型
写法: 枚举类.枚举值.ordinal();
JDK1.5引入的枚举类型使得Java的switch语句支持枚举,提高了代码可读性和维护性。枚举相比整型常量,其含义更明确,有助于减少后期维护的困难。通过定义枚举类,可以更清晰地表示和组织代码,例如使用枚举值的ordinal()方法替代整型常量。
2429

被折叠的 条评论
为什么被折叠?



