2/19/2007

toString via introspection

Si vous croyez que Java est du café ne lisez pas ce billet. Aujourd'hui je me suis officiellement tanné d'écrire des toString manuellement pour debuger... Voici maintenant la mighty toString dynamique via introspection:



/*
* (non-Javadoc)
* @see java.lang.Object#toString()
*/
public String toString() {


Class clazz = this.getClass();
String msg = "";

msg += "\n==== " + clazz + " ====\n";

do {
Field[] fields = clazz.getDeclaredFields();
AccessibleObject.setAccessible(fields, true);
// For each field:
for (int i = 0; i < fields.length; i++) {
Field f = fields[i];

try {
msg += "CHAMP: [" + f.getName() + "] TYPE: [" + f.getType()
+ "] VALUE: [" + f.get(this) + "] \n";
}
catch (Exception e) {
msg += "CHAMP: [" + f.getName() + "] TYPE: [" + f.getType()
+ "] VALUE: [ERROR WHILE FETCHING] \n";
}
}
clazz = clazz.getSuperclass();
}
while (clazz != null && clazz != Object.class);

msg += "=============================================================\n";

return msg;

}


J'aurais dû me tanner avant!

Aucun commentaire: