猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
有没有办法动态地从不同的类中获取所有静态字段及其值?
我需要在应用程序初始化时从不同的类获取静态值,我正在使用 @PostConstruct 并且我不知道如何在不创建每个类的实例的情况下检索所有这些值
温温酱
浏览 112
回答 2
2回答
拉丁的传说
你可以用户反射(甚至可以动态传递类名):package com.example;import java.lang.reflect.Field;import java.lang.reflect.Modifier;public class Main { public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException, ClassNotFoundException { printStaticFieldsAndValues("com.example.ClassWithStaticFields"); } private static void printStaticFieldsAndValues(String className) throws IllegalArgumentException, IllegalAccessException, ClassNotFoundException { Class clazz = Class.forName(className); for (Field f : clazz.getDeclaredFields()) { if (Modifier.isStatic(f.getModifiers())) { System.out.println("Name: " + f.getName()); System.out.println("Value " + f.get(null)); } } }}具有静态字段的类:package com.example;public class ClassWithStaticFields { static String stringField = "String Value";}输出:Name: stringFieldValue String Value
0
0
0
缥缈止盈
在类上尝试静态初始化程序public class OtherClass { public static final String VALUE = "SomeValue";}public class SomeClass { static { OtherClass.VALUE; }}做任何你想做的事。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
Java
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续