先定义一个枚举类
@Getter
public enum ConsumptionEnums {
CONSUME("待结算", 0),
AUDIT("待审核", 1),
FINISH("归档", 2),
FAILURE("坏账", 3);
private String name;
private Integer value;
ConsumptionEnums(String name, Integer value) {
this.name = name;
this.value = value;
}
}
获取枚举类的枚举对象
// valus() 方法获取枚举类的所有枚举对象, 返回数组
ConsumptionEnums[] values = ConsumptionEnums.values();
// 必要时可以转成 List 集合
List<ConsumptionEnums> consumptionEnums = Arrays.asList(ConsumptionEnums.values());
获取枚举对象的名字
for (ConsumptionEnums consumptionEnum : consumptionEnums) {
//.name()方法获取枚举对象的名字
String name = consumptionEnum.name();
System.out.println("name = " + name);
}
// 运行结果:
// name = CONSUME
// name = AUDIT
// name = FINISH
// name = FAILURE
获取枚举对象的属性值
for (ConsumptionEnums consumptionEnum : consumptionEnums) {
//.getXxx()获取枚举对象的对应属性值,需要提供getter方法
String name = consumptionEnum.getName();
ystem.out.println("name = " + name);
}
// 运行结果:
// name = 待结算
// name = 待审核
// name = 归档
// name = 坏账
for (ConsumptionEnums consumptionEnum : consumptionEnums) {
Integer value = consumptionEnum.getValue();
System.out.println("name = " + value);
}
// 运行结果
// name = 0
// name = 1
// name = 2
// name = 3
在 SpringMVC 中调用枚举对象
// 通常用枚举对象的名字作为 value 值, 防止 sql 注入
<#list status as status>
<option value="${status.name()}">${status.getName()}</option>
</#list>
// 回显
// 因为 ${} 不会给内容加'', 而选项的 value 值是一个字符串, 需要加上''
$("select[name=groupByName]").val('${qo.groupByName}')
在前端控制台可以看到直接取值 BUSINESS 不带’ ’
枚举类的作用
1.定义一个枚举类相当于定义一种参数规范, 针对很少变动的有限个数的同类参数做一个定义规范, 使得开发过程中的参数应用更加的规范合理
2.枚举类的实例是确定的, 因此对参数的加减和值有了限制, 数据更加安全
3.实例相当于静态变量, 但对比静态变量它可以定义属性, 比静态变量更加灵活,适用性更广