Interface ICodeBook
public interface ICodeBook
代码本接口
用于定义枚举类的标准接口,提供代码、名称和描述的获取方法
主要功能: 1. 定义枚举的标准接口(getCode、getName、getDescription) 2. 提供通过名称查找枚举的工具方法 3. 提供通过代码值查找枚举的工具方法
使用场景: - 字典类型枚举(如:状态码、类型码等) - 需要代码和描述分离的业务枚举 - 需要动态查找枚举值的场景
使用示例:
public enum OrderStatus implements ICodeBook {
PENDING("0", "待处理", "订单已创建,等待处理"),
PROCESSING("1", "处理中", "订单正在处理"),
COMPLETED("2", "已完成", "订单已完成");
private String code;
private String name;
private String description;
// 构造函数和getter...
@Override
public String getCode() {
return code;
}
@Override
public String getName() {
return name;
}
@Override
public String getDescription() {
return description;
}
}
// 使用示例
OrderStatus status = ICodeBook.valueOfCode("0", OrderStatus.class);
- Author:
- Kerbores(kerbores@riemann.tech)
-
Method Summary
Modifier and TypeMethodDescriptiondefault Codebookbuild()构建Codebook对象getCode()获取代码值获取描述信息default StringgetName()获取名称(默认实现)name()获取名称toCodebooks(Class<E> clazz) 将枚举类的所有常量转换为Codebook列表static <E extends Enum<E>>
E根据枚举名称获取枚举对象valueOfCode(String code, Class<E> clazz) 根据代码值获取枚举对象获取枚举类的所有常量数组
-
Method Details
-
getDescription
-
getCode
-
name
-
getName
-
valueOf
-
valueOfCode
根据代码值获取枚举对象通过遍历枚举类的所有常量,比较每个常量的代码值与提供的代码值是否匹配
如果找到匹配的常量,则返回该常量;如果没有找到匹配的常量,则抛出IllegalArgumentException异常
这在实际开发中非常有用,尤其是在需要根据配置或动态获取的枚举代码来操作枚举对象时
- Type Parameters:
E- 枚举类型标记,表示任何继承自Enum并实现ICodeBook接口的子类- Parameters:
code- 枚举代码,对应枚举常量的代码值clazz- 枚举类的类型- Returns:
- 返回对应的枚举对象
-
build
构建Codebook对象将当前枚举项转换为Codebook对象,包含名称、描述和代码信息
使用场景: - 将枚举转换为统一的数据字典格式 - 用于前端下拉选项、单选框、复选框等
- Returns:
- Codebook新构建的Codebook对象,包含名称、描述和代码信息
-
values
-
toCodebooks
将枚举类的所有常量转换为Codebook列表通过获取枚举类的所有常量,并调用每个常量的build()方法将其转换为Codebook对象
最终返回一个包含所有Codebook对象的列表,常用于下拉选项、数据字典等场景
使用示例:
List<Codebook> codebooks = ICodeBook.toCodebooks(OrderStatus.class); // 返回:[ // {name: "待处理", code: "0", description: "订单已创建,等待处理"}, // {name: "处理中", code: "1", description: "订单正在处理"}, // {name: "已完成", code: "2", description: "订单已完成"} // ]- Type Parameters:
E- 枚举类型标记,表示任何继承自Enum并实现ICodeBook接口的子类- Parameters:
clazz- 枚举类的类型- Returns:
- 返回包含所有枚举常量转换后的Codebook列表
-