有没有办法动态地从不同的类中获取所有静态字段及其值?

我需要在应用程序初始化时从不同的类获取静态值,我正在使用 @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

缥缈止盈

在类上尝试静态初始化程序public class OtherClass {   public static final String VALUE = "SomeValue";}public class SomeClass {   static {      OtherClass.VALUE;   }}做任何你想做的事。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java