Java 通过 getField() 操作公共全局变量
以前写 JavaWeb 项目启动初始化系统配置全局变量的代码,都是 variable = Properties.getProperty(name) 这样一行一行代码的设置,变量少还好说,变量一多真的很磨叽。所以一直想通过 循环 简化代码,重构某个项目时无意间发现了 Java 反射中的 getField() 以及其他相关方法,节省了大量代码,所以在此记录一下。由于反射的 性能 问题,只在系统启动时初始化数据使用。
依赖工具类 PropertiesUtils
package net.itanken.test.util;
import java.util.Properties;
public class PropertiesUtils {
private static Properties props = new Properties();
public static final String get(String key) {
return props.getProperty(key, "");
}
// 省略 Properties.load() 等其他相关代码
}
全局配置类 Configuration
重点代码为 Configuration.class.getField(name).set(Configuration.class, value);