需求:当有很多行数据定义为一个常量类,我们可以考虑将他们从数据库查询出,并复制到一个test.txt文件中,通过工具直接将他们定义为常量,并新增一个常量类来保存。
test.txt
sceneFieldPathPrefix 场景字段前缀
sceneEnumSwitch 场景字段枚举值开关
sceneServicetype 场景服务类型
sceneSwitch 场景权限开关
sceneType 场景类型
········
定义后的常量类为Constant.java
/** 场景字段前缀: */
public static final String SCENE_FIELD_PATH_PREFIX = " sceneFieldPathPrefix";
/** 场景字段枚举值开关: */
public static final String SCENE_ENUM_SWITCH = " sceneEnumSwitch";
/** 场景服务类型: */
public static final String SCENE_SERVICETYPE = " sceneServicetype";
/** 场景权限开关: */
public static final String SCENE_SWITCH = " sceneSwitch";
/** 场景类型: */
public static final String SCENE_TYPE = " sceneType";
工具类TransferConstantUtil.java
public static void transferConstant(String name) {
// 使用ArrayList来存储每行读取到的字符串
List<Map<String,Object>> lists = new ArrayList<>();
try {
FileReader fr = new FileReader(name);
BufferedReader bf = new BufferedReader(fr);
String str;
// 按行读取字符串
while ((str = bf.readLine()) != null) {
Map<String,Object> map = new HashMap<>();
String[] split = str.split("\t");
map.put("key",split[0]);
map.put("value",split[1]);
lists.add(map);
}
bf.close();
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(lists.size()+"========");
lists.forEach(map->{
System.out.println("/** "+ map.get("value")+":*/");
System.out.println("public static final String "+ underScoreName(map.get("key").toString()) +" = \" "+ map.get("key")+"\";");
});
}
工具类见另一个博客:https://blog.csdn.net/qq_34254462/article/details/120222647