2011-11-03 14 views
9

tengo una clase Java con una variable estáticaAcceso última variable estática por medio de la reflexión

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

¿Cómo puedo acceder al objeto utilizando la reflexión TEXT_CLASS?

(Tengo la cadena "com.mytest.MyClass.TEXT_CLASS". Necesito tener acceso al objeto.)

Respuesta

24

Acceso a campos estáticos se realiza exactamente de la misma manera que los campos normales, solamente que no es necesario pasar ningún argumento que Field.get() método (puedes pasar un nulo).

Prueba esto:

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); 
} 
Cuestiones relacionadas