2010-03-17 17 views
25

Sto utilizzando la versione Java di Google App Engine.Come faccio a scorrere i membri della classe?

Vorrei creare una funzione che possa ricevere come parametri molti tipi di oggetti. Vorrei stampare le variabili membro dell'oggetto. Ogni oggetto (s) può essere diverso e la funzione deve funzionare per tutti gli oggetti. Devo usare la riflessione? In tal caso, che tipo di codice devo scrivere?

public class dataOrganization { 
    private String name; 
    private String contact; 
    private PostalAddress address; 

    public dataOrganization(){} 
} 

public int getObject(Object obj){ 
    // This function prints out the name of every 
    // member of the object, the type and the value 
    // In this example, it would print out "name - String - null", 
    // "contact - String - null" and "address - PostalAddress - null" 
} 

Come dovrei scrivere la funzione getObject?

risposta

69

Sì, hai bisogno di riflessione. Sarebbe andare o meno così:

public int getObject(Object obj) { 
    for (Field field : obj.getClass().getDeclaredFields()) { 
     //field.setAccessible(true); // if you want to modify private fields 
     System.out.println(field.getName() 
       + " - " + field.getType() 
       + " - " + field.get(obj)); 
    } 
} 

Vedere la reflection tutorial di più.

Problemi correlati