segunda-feira, 22 de outubro de 2018

How to call the same methods from difference classes

public class Teste1 {

public String valor1;

public String getValor1() {
return valor1;
}

public void setValor1(String valor1) {
this.valor1 = valor1;
}
}
#########################################################################
public class Teste2 {

public String valor1;

public String getValor1() {
return valor1;
}

public void setValor1(String valor1) {
this.valor1 = valor1;
}

}

#########################################################################


import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class GenericTest {

public static void main(String[] args) {

Teste1 t1 = new Teste1();
t1.setValor1("valor1");

Teste2 t2 = new Teste2();
t2.setValor1("valor2");

System.out.println(testeMetodo(t1, Teste1.class));
System.out.println(testeMetodo(t2, Teste2.class));
}
public static String testeMetodo(Object objecInstance, Class<?> clazz) {
String retorno = "";
try {
Method metodo = clazz.getMethod("getValor1");
retorno = (String) metodo.invoke(objecInstance, null);

} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return retorno;
}

}

Nenhum comentário:

Postar um comentário