Chamando métodos dinamicamente

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

Voce tme certeza que continua 3?
Chama o método teste2 depois de invokar o método.

Isso não deveria acontecer.

Mas aqui aconteceu.

Descomente o “opa.teste()” e execute ai.

Alguem mais faz alguma ideia porque isso acontece?

Achei o erro pessoal…

Era só colocar:

Object retobj = meth.invoke(this, arglist);

Porque eu estava criando uma nova instancia sem perceber! Erro besta!