Java枚举在项目中的应用

因项目需要,最近在构思一个面试系统,面试记录数据库中的每条面试记录需要存入一个“状态”字段来保存用户当前的面试进度。

使用枚举类来管理这个状态,只需在每条面试记录的状态字段中存入对应的step即可区分当前的面试进度。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package com.fran6k.study.springbootstudy.utils;

public enum InterviewEnum {
StageOneWaitB(1,"等待社长审核"),
StageTwoSuccess(2,"审核通过,等待学生确认"),
StageTwoFailed(3,"审核未通过"),
StageThreeSuccess(4,"确认加入"),
StageThreeFailed(5,"放弃加入");


private final int step;
private final String message;

private InterviewEnum(int step,String message){
this.step = step;
this.message = message;
}

//根据step获取消息
public static String getMessage(int step){
for(InterviewEnum interviewEnum:InterviewEnum.values()){
if(step == interviewEnum.getStep())return interviewEnum.getMessage();
}
return null;
}
//获取步骤
public int getStep() {
return step;
}
//获取消息
public String getMessage() {
return message;
}
}

枚举类的实质:定义的每一个枚举类在编译后会自动继承java.lang.Enum,每个枚举值在类的初始化阶段会被实例化为我们所定义的枚举类的一个对象。

枚举类可以将枚举数据与它的常量关联起来,很适合管理一系列的常量数据,就像上述的面试阶段名称对应的step和message。