55 lines
1.3 KiB
Markdown
55 lines
1.3 KiB
Markdown
```java
|
||
/**
|
||
* @author dss
|
||
* @date 2021/10/9
|
||
* @description:
|
||
*/
|
||
public enum AuditStatus{
|
||
|
||
NO_SUBJECT(0,"未提交"),
|
||
NO_AUDIT(2,"未审核"),
|
||
AUDIT(1,"审核通过");
|
||
|
||
|
||
@Getter
|
||
private final Integer code;
|
||
|
||
@Getter
|
||
private final String label;
|
||
|
||
AuditStatus(Integer code,String label){
|
||
this.code=code;
|
||
this.label=label;
|
||
}
|
||
|
||
|
||
/**
|
||
* 根据code获取对应的label
|
||
* @param code
|
||
* @return 形参code所对应的label值
|
||
* @throws Exception
|
||
*/
|
||
public static String getValueByCode(Integer code) throws Exception {
|
||
//获取Class对象
|
||
Class<?> clzz = AuditStatus.class;
|
||
|
||
// 获取所有枚举对象
|
||
Object[] objects = clzz.getEnumConstants();
|
||
//获取指定方法
|
||
Method coinLabel = clzz.getMethod("getLabel");
|
||
Method coinCode = clzz.getMethod("getCode");
|
||
|
||
|
||
//遍历所有枚举对象
|
||
for (Object obj : objects) {
|
||
//执行coinCode方法(getCode)该枚举的code值,如果和形参code 的值相同则
|
||
if (coinCode.invoke(obj) == code) {
|
||
//执行coinLabel方法(getLabel)获取响应的label值进行返回
|
||
return coinLabel.invoke(obj).toString();
|
||
}
|
||
}
|
||
return null;
|
||
}
|
||
}
|
||
```
|