En algunas ocasiones necesitamos, en tiempo de ejecución obtener los cambos de un bean, es decir que propiedades tiene y su respectivo valor, lo anterior porque no tenemos acceso al código, deseamos conocer el estado de un objeto en un momento dado, etc.
Aquí tiene la clase BeanDescriptor, esta pequeña me ha sido muy útil cuando ocupo espiar el estado de un objeto en un JSP y no tengo la librería bean utils en el classpath, enjoy!
Aquí tiene la clase BeanDescriptor, esta pequeña me ha sido muy útil cuando ocupo espiar el estado de un objeto en un JSP y no tengo la librería bean utils en el classpath, enjoy!
public class BeanDescriptor {
public java.util.Map describe(Object bean) throws IllegalAccessException,
java.lang.reflect.InvocationTargetException, NoSuchMethodException, java.beans.IntrospectionException {
java.util.Map description = new java.util.HashMap();
String name = null;
java.beans.PropertyDescriptor descriptors[] =
java.beans.Introspector.getBeanInfo(bean.getClass()).getPropertyDescriptors ();
for (int i = 0; i < descriptors.length; i++) {
name = descriptors[i].getName();
if (descriptors[i].getReadMethod() != null) {
description.put(name, descriptors[i].getReadMethod().invoke (bean, new Object []{}));
}
}
return (description);
}
}
Comentarios