Eu tenho essa classe aqui:
import java.lang.reflect.*;
public class InvocaMetodo {
public int aux;
public int umMetodo(int a, int b) {
aux = 5;
return aux + a + b;
}
public static void main(String args[]) {
InvocaMetodo opa = new InvocaMetodo();
//opa.teste();
int lala = opa.umMetodo(37, 47);
opa.teste2();
}
public InvocaMetodo(){
aux = 3;
}
public void teste2(){
System.out.println(aux);
}
public void teste(){
try {
Class partypes[] = new Class[2];
partypes[0] = Integer.TYPE;
partypes[1] = Integer.TYPE;
//Class cls = Class.forName("InvocaMetodo");
Class cls = this.getClass();
Method meth = cls.getMethod("umMetodo", partypes);
Object arglist[] = new Object[2];
arglist[0] = new Integer(37);
arglist[1] = new Integer(47);
InvocaMetodo methobj = new InvocaMetodo();
Object retobj = meth.invoke(methobj, arglist);
Integer retval = (Integer)retobj;
//System.out.println(retval.intValue());
}
catch (Throwable e) {
System.err.println(e);
}
}
}
Eu chamando o metodo “umMetodo” pelo jeito tradicional, o valor de “aux” vira 5. Mas se eu chamar ele dinamicamente, “aux” continua 3. Como se o efeito do método não alterasse a instancia.
Como resolvo isso?
vlw