Reescreve os métodos equals e hascode da classe Pai Object que ficará melhor

Em 06/07/05, Leonardo Schmitt <[EMAIL PROTECTED]> escreveu:
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/




--
Abraços Sinceros e Agradecidos
Andre Fonseca

YAHOO! GROUPS LINKS




Atrašyti