Доступ к статической конечной переменной с помощью отражения - PullRequest
13 голосов
/ 03 ноября 2011

У меня есть класс Java со статической переменной

package com.mytest
public class MyClass{
    public static final TextClass TEXT_CLASS = new TextClass();
}

Как я могу получить доступ к объекту TEXT_CLASS, используя отражение?

(у меня есть строка "com.mytest.MyClass.TEXT_CLASS". Мне нужен доступ к объекту.)

1 Ответ

32 голосов
/ 03 ноября 2011

Доступ к статическим полям выполняется точно так же, как и к обычным полям, только вам не нужно передавать какой-либо аргумент методу Field.get() (вы можете передать ноль).

Попробуйте это:

Object getFieldValue(String path) throws Exception {
    int lastDot = path.lastIndexOf(".");
    String className = path.substring(0, lastDot);
    String fieldName = path.substring(lastDot + 1);
    Class myClass = Class.forName(className);
    Field myField = myClass.getDeclaredField(fieldName);
    return myField.get(null);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...