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") ) 
                   {
                           try {
                           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].toGenericString());
                                   }
                                   
                           } else if( umaClasse == String.class) // 
String
                           {
                                   if( objRetornado1 == 
objRetornado2 )
                                   {
                                           ehDiferente = true;
                                           System.out.println
("Metodo " + umaListaMetodos[i].getName() + umaListaMetodos
[i].toGenericString());
                                   }
                           }
                                   
                                   
                          /** else // e´ de uma classe que tem 
objetos dentro
                                   ehDiferente = compare
(objRetornado1 , objRetornado2);
                           System.out.println(umaClasse); **/
                           }
                           catch( Exception e ){ e.printStackTrace
(); }
                          
                   }
           }
           return 1;
   }

}




 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/jug-petropolis/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Atrašyti