2011-11-03 22 views
9

Mam klasy Java ze statycznym zmiennejDostęp Ostatnia zmienna statyczna przy użyciu odbicia

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

Jak mogę uzyskać dostęp do obiektu TEXT_CLASS przy użyciu odbicia?

(mam ciąg "com.mytest.MyClass.TEXT_CLASS". Muszę uzyskać dostęp do obiektu).

Odpowiedz

24

Dostęp do pól statycznych odbywa się dokładnie tak samo jak zwykłe pola, tylko nie trzeba przechodzić żadnego argumentu do Field.get() metodą (możesz podać wartość null).

Spróbuj tego:

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); 
} 
Powiązane problemy