Obeter getter a partir de uma variavel

Boa tarde pessoal.

Como posso obter um getter de uma classe a partir de uma variavel? por exemplo;

private String variavel;

public String getVariavel() {
return this.variavel
}

Como posso obter o getter dessa classe usando uma String. por exemplo

obeterGetter(OBJETO , “variavel”);

Suponha que você tenha a seguinte classe:

public class Classe {

    private String variavel;

    public String getVariavel() {
        return variavel;
    }

    public void setVariavel(String valor) {
        this.variavel = valor;
    }
}

Você pode utilizar reflection para obter o método getVariavel a partir do nome da variável da seguinte forma:

import java.lang.reflect.Method;

public class Exemplo {

    public static void main(String[] args) throws Exception {
        Exemplo programa = new Exemplo();
        programa.executar();
    }

    public void executar() throws Exception {
        Classe objeto = new Classe();
        objeto.setVariavel("Valor que setei pro atributo");

        Method getter = obterGetter(objeto, "variavel");
        String resultado = (String) getter.invoke(objeto);
        System.out.println(resultado);
    }

    private Method obterGetter(Classe objeto, String nomeAtributo) {
        try {
            Class<?> classe = objeto.getClass();
            String nomeGetter = "get" + nomeAtributo.toUpperCase().charAt(0) + nomeAtributo.substring(1);
            return classe.getMethod(nomeGetter);
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (SecurityException e) {
            e.printStackTrace();
        }
        return null;
    }
}
1 curtida

Opa deu certo aqui. Vlws