Reflection

Home

Réflexivité.

Besoin

Découvrir et invoquer dynamiquement des interfaces d'objets.

Analyse

La réflexivité permet :

Ces opérations sont soumises à des accréditations de sécurité (pas d'accès aux membres privés par exemple).

Conception

 

Exemples

Un exemple d'utilisation de la réflexivité est :

Class objectClass = obj.getClass();
String propertyName = "counter";
String prop = Character.toUpperCase(propertyName.charAt(0)) + name.substring(1);

String mname = "get" + prop;
Class[] types = new Class[] {};
Method method = objectClass.getMethod(mname, types);  // Getter

Object result = method.invoke(obj, new Object[0]);
int value = ((Integer)result).intValue() + 1;            // Incrémente

mname = "set" + prop;
types = new Class[] { int.class };
method = objectClass.getMethod(mname, types);         // Setter

method.invoke(obj, new Object[] { new Integer(value) });

Des exemples d'utilisation de la réflexivité sont :

Home