2010-05-31 32 views
6

HoCome si scorre su un campo Array in modo riflessivo?

Class<? extends Object> class1 = obj.getClass(); 
    Field[] fields = class1.getDeclaredFields(); 
    for (Field aField : fields) { 
     aField.setAccessible(true); 
     if (aField.getType().isArray()) { 
      for (?? vals : aField) { 
      System.out.println(vals); 
      } 
     } 
     } 

risposta

6

usereste qualcosa di simile:

if (aField.getType().isArray()) { 
    Object array = aField.get(obj); 
    int length = Array.getLength(array); 
    for (int i = 0; i < length; i++) { 
    System.out.println(Array.get(array, i)); 
    } 
} 

In altre parole, in primo luogo recuperare il valore del campo utilizzando Field.get, quindi utilizzare la classe helper java.lang.reflect.Array per accedere al lunghezza e i singoli elementi.

Problemi correlati