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/