En muchas ocasiones me ha ocurrido que quiero revisar el contenido de mis objetos y revisar cuales son los valores que tiene asignados, infortunadamente no hay una función en Java que permita hacer ese comportamiento similar al print_r() o var_dump() del tan famoso PHP.
Afortunadamente leí por ahí un truco y quiero compartirlo con ustedes. Es una implementación simple pero con mucho potencial y consiste en recorrer en un ciclo todos los campos de una clase, sabiendo el nombre, se obtiene su valor y se imprime por consola. Veamos:
Field[] fields = obj.getClass().getDeclaredFields();
try {
//recorremos el array obtenido a través de nuestro objeto
for (Field field : fields) {
//field.getName() da el nombre del campo y field.get obtiene el valor
System.out.println(field.getName() + " : " + field.get(obj));
}
} catch (IllegalArgumentException | IllegalAccessException ex) {
Logger.getLogger(JavaDump.class.getName()).log(Level.SEVERE, null, ex);
}
Si te interesa el proyecto, dejo el proyecto de Netbeans y las clases por separado, para que en caso de no tener este IDE, puedas intentarlo por tu cuenta.
Aquí el proyecto de NetBeans
Aquí las clases por separado
Espero te sea de utilidad ;)