come dicevo:
codice del bean, semplice
codice:
public class Bean implements Serializable{
private String field1 = "";
public Bean() {
}
public String getField1() {
return field1;
}
public void setField1(String field1) {
this.field1 = field1;
}
}
da un'altra classe richiamo:
codice:
Bean b = new Bean();
String name = "field1";
String realName = "set" + name.substring(0, 1).toUpperCase() + name.substring(1);
Method method = b.getClass().getDeclaredMethod(realName);
method.invoke(b, "ciao");
NB: realname diventa: setField1 (quindi è giusto)
risultato:
codice:
Exception in thread "main" java.lang.NoSuchMethodException: main.Bean.setField1()
at java.lang.Class.getDeclaredMethod(Class.java:1937)
at main.NewClass.exec(NewClass.java:49)
at main.NewClass.main(NewClass.java:24)
Java Result: 1
se cambio "set" con "get" il metodo viene trovato e tutto funziona.
se scorro l'elenco dei metodi, l'output è questo:
codice:
getField1
setField1