Introspection

Home

Besoin

 

Analyse

Conception

 

Exemples

Un exemple d'utilisation de l'introspection est :

Class beanClass = obj.getClass();
String propertyName = "counter";
BeanInfo beanInfo = Introspector.getBeanInfo(beanClass);
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();

for (int i = 0; i < propertyDescriptors.length; i++) {
  PropertyDescriptor propertyDescriptor = propertyDescriptors[i];
  String somePropertyName = propertyDescriptor.getName();

  if (somePropertyName.equals (propertyName)) {
     Method method = propertyDescriptor.getReadMethod();  // Getter
     Object result = method.invoke(obj, new Object[0]);
     int value = ((Integer)result).intValue() + 1;        // Incrémente
     method = propertyDescriptor.getWriteMethod();        // Setter      
     method.invoke(obj, new Object[] { new Integer(value) });
     break;

  }
}

Des exemples d'introspection sont :

Home