Estou me iniciando no java , e tenho um problema para comparar objetos de mesma classe , quero chamar todos os métodos get´s e comparar com um outro objeto da mesma classe , implementei uma primeira parte
com o valor primitivo int ,como faço agora para implementar os demais tipos String , float , double, posso seguir o mesmo conceito do cod abaixo
import java.lang.reflect.Method;
public class CompareObjetos
{
public static void main(String args[])
{
ClasseTeste o1,o2;
o1 = new ClasseTeste();
o2 = new ClasseTeste();
compare(o1,o2);
}
public static int compare(Object o1, Object o2)
{
Method[] umaListaMetodos = o1.getClass().getDeclaredMethods();
boolean ehDiferente = false;
for(int i = 0; i < umaListaMetodos.length; i++)
{
if( umaListaMetodos[i].getName().startsWith("get") )
{
Class umaClasse = umaListaMetodos[i].getReturnType();
Object objRetornado1 = umaListaMetodos[i].invoke(o1 , null);
Object objRetornado2 = umaListaMetodos[i].invoke(o2 , null);
if( umaClasse == int.class )
{
if( objRetornado1 == objRetornado2 )
{
ehDiferente = true;
System.out.println("Metodo " + umaListaMetodos[i].getName() + umaListaMetodos[i].getAnnotations());
}
} else if( umaClasse == String.)// String