Das folgende Beispiel zeigt eine generische Methode zum Setzen von Datenelementen. Diese Methode setzt lediglich das im einleitenden Abschnitt beschriebene Muster für Bean-Properties voraus, d. h., zu einem Datenelement muss es eine get()- und eine set()-Methode geben. Die hier gezeigte Klasse DemoBean genügt dieser Konvention:
public class DemoBean {
int state;
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
}
}
Derartige Properties können mit der nachfolgend gezeigten Methode gesetzt werden. Ihr müssen drei Parameter übergeben werden: Der Name der Property, der Wert, der zugewiesen werden soll und schließlich das Objekt, bei dem die Property gesetzt werden soll.
public static void setProperty(String name, Object val,
Object instance) throws NoSuchMethodException,
IllegalAccessException, InvocationTargetException {
Method getMethod, setMethod;
Class beanClass, propertyType;
// Class-Object ermitteln
beanClass = instance.getClass();
// Das Method-Objekt für die get()-Methode abrufen...
getMethod = beanClass.getMethod("get"+name, null);
// ...um dann den Typ der Property ermitteln
propertyType = getMethod.getReturnType();
// Anhand des Typs und des Namens die set-Methode ermitteln...
setMethod = beanClass.getMethod("set"+name, new Class[] {propertyType});
// ... und den Aufruf absetzen
setMethod.invoke(instance, new Object[] {val});
}
Die folgenden Anweisungen zeigen schließlich, wie die generische setProperty()-Methode auf die zuvor gezeigte Bean-Klasse angewendet wird:
DemoBean bean = new DemoBean();
PropVal.setProperty("State", new Integer(100), bean);
Material zum Beispiel