Ho creato due classi Dati e Dati2, che hanno stessi campi e stessi metodi
public class Dati {
private int valore = 0;
public int getValore() {
return valore;
}
public void setValore(int valore) {
this.valore = valore;
}
}
public class Dati2 {
private int valore = 0;
public int getValore() {
return valore;
}
public void setValore(int valore) {
this.valore = valore;
}
}
e un test che copia i valori di una classe nell'altra attraverso i metodi getMethod e invoke della reflections
public class TestProperty {
public static void main(String[] args) {
Dati d = new Dati();
Dati2 d2 = new Dati2();
Method metodo = null;
Integer value = null;
d.setValore(7);
metodo = d.getClass().getMethod("get" + "Valore", new Class[]{});
if(metodo != null){
value = metodo.invoke(d, new Object[]{});
}
metodo = d2.getClass().getMethod("set" + "Valore", new Class[]{value.getClass()});
if(metodo != null){
metodo.invoke(d2, new Object[]{value});
}
ma mi da il seguente errore
NoSuchMethodException.
certo per fare cio avrei potuto fare in tanti altri modi, ma
non riesco a capire perché il programma mi vede il metodo get, ma non il metodo set, delle classi Dati e Dati2.
me lo vede solamente se io metto int.class al posto di value.getClass().
qualcuno sa dirmi qualcosa per favore