需求:对任务入参做参数校验 全量任务参数校验:无校验 增量任务参数校验:开始时间和结束时间必须传值 指定id任务参数校验:任务id必须有值 使用枚举类对参数做校验
public class JobParam {
private String jobType;
private Long jobId;
private Date startTime;
private Date endTime;
// 省略构造函数、getter和setter
}
public enum JobTypeEnum {
// 增量定时任务
INCREMENTAL("INCREMENTAL") {
@Override
public void checkParam(JobParam params) throws Exception {
if (params.getStartTime() == null || params.getEndTime() == null) {
throw new Exception("开始时间和结束时间必须传值");
}
}
},
// 全量定时任务
FULL("FULL") {
@Override
public void checkParam(JobParam params) throws Exception {
return;
}
},
// 指定任务ID定时任务
SPECIFIC_ID("SPECIFIC_ID") {
@Override
public void checkParam(JobParam params) throws Exception {
if (params.getJobId() == null) {
throw new Exception("任务ID不能为空");
}
}
};
private String jobType;
JobTypeEnum(String jobType) {
this.jobType=jobType;
}
private static final Map<String, JobTypeEnum> jobTypeMap = new HashMap<>();
static {
for (JobTypeEnum enumValue : JobTypeEnum.values()) {
jobTypeMap.put(enumValue.jobType, enumValue);
}
}
public static JobTypeEnum getEnum(String jobType) {
return jobTypeMap.get(jobType);
}
public abstract void checkParam(JobParam params) throws Exception;
}
public static void main(String[] args) {
JobParam params = new JobParam();
params.setJobType("SPECIFIC_ID");
JobTypeEnum jobType = JobTypeEnum.getEnum(params.getJobType());
try {
jobType.checkParam(params);
System.out.println("参数校验通过");
// 进行后续操作
} catch (Exception e) {
System.out.println("参数校验失败: " + e.getMessage());
// 处理参数校验失败的情况
}
}