亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有辦法動態地從不同的類中獲取所有靜態字段及其值?

有沒有辦法動態地從不同的類中獲取所有靜態字段及其值?

溫溫醬 2023-03-31 14:45:37
我需要在應用程序初始化時從不同的類獲取靜態值,我正在使用 @PostConstruct 并且我不知道如何在不創建每個類的實例的情況下檢索所有這些值
查看完整描述

2 回答

?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

你可以用戶反射(甚至可以動態傳遞類名):


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: stringField

Value String Value


查看完整回答
反對 回復 2023-03-31
?
縹緲止盈

TA貢獻2041條經驗 獲得超4個贊

在類上嘗試靜態初始化程序


public class OtherClass {


   public static final String VALUE = "SomeValue";


}


public class SomeClass {


   static {

      OtherClass.VALUE;

   }

}

做任何你想做的事。


查看完整回答
反對 回復 2023-03-31
  • 2 回答
  • 0 關注
  • 152 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號