先随意创建一个用户类:
/**
* @author 晚风
* @since 2022/3/14 11:31
*/
public class User {
private String name;
public final static String vname = "小红";
}
再创建一个Main类,来获取静态变量的值:
public class Main{
public static void main(String[] args) {
try {
Class<?> clazz = Class.forName("com.wan.User");
Field[] fields = clazz.getFields();
Stream.of(fields).forEach(field -> {
int modifiers = field.getModifiers();
// 判断该属性是否是public final static 类型的
// 如果想过去其它的,具体可以参考 Modifier 这个类里面的修饰符解码
boolean flag = (Modifier.isPublic(modifiers) && Modifier.isStatic(modifiers) && Modifier.isFinal(modifiers));
if(flag){
String name = field.getName();
Object value = null;
try {
// field.get(null) 表示获取这个静态变量的值
value = field.get(null);
System.out.println(value); // 打印 小红
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
});
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
至此,获取静态变量属性值成功 ps: 一般开发中不会这么用,但是写框架的时候可能会有用