Home |
---|
Réflexivité.
Découvrir et invoquer dynamiquement des interfaces d'objets.
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).
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 |
---|