2013-06-28 15 views
5

Ich habe ein POJO mit vielen Strings und ich möchte eine einfache Methode, um zu überprüfen, ob sie alle leer sind/ein bestimmtes Zeichen/was auch immer enthalten.Erhalten Wert der String-Variable über Reflexion

ich die String-Variablen mit diesem:

Field[] fields = this.getClass().getDeclaredFields(); 

    for (Field f : fields) { 

     if (f.getType() == java.lang.String.class) { 
      Log.d("REF", "Field: " + f.getName()); 
     } 

    } 

aber ich weiß nicht, wie der String-Wert des Feldes zu erhalten. Wie wird es gemacht?

Antwort

2

Sie können diesen Code versuchen, den Wert zu erhalten:

for (Field f : fields) { 
    if (f.getType() == java.lang.String.class) { 
     Log.d("REF", "Field: " + f.getName()); 
     String s = (String)f.get(this); 
    } 
} 
1

Für Objekt Sie Field#get(Object) Methode verwenden sollten. als String ist ein Objekt in Java also:

 String str = (String)f.get(this);