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