é o seguinte eu tenho dois objetos de mesma classe, o codigo abaixo 
pega os dois objetos e compara seus metodos get´s e is´s me 
informando em uma mensagem os seus metodos iguais podem testar se 
quiserem para ver como funciona , mas, o q eu quero agora é no final 
por um ultimo else como... e se for um outro objeto e não um tipo 
primitivo como vou lá no outro objeto da hierarquia e buscar os seus 
metodos? 

public class ClasseTeste {

        String nome;
        long i;
        int y;
        boolean flag;
        
        public boolean isFlag() {
                return flag;
        }
        public void setFlag(boolean flag) {
                this.flag = flag;
        }
        public long getI() {
                return i;
        }
        public void setI(long i) {
                this.i = i;
        }
        public String getNome() {
                return nome;
        }
        public void setNome(String nome) {
                this.nome = nome;
        }
        public int getY() {
                return y;
        }
        public void setY(int y) {
                this.y = y;
        }
}

e

import java.lang.reflect.*;

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") || umaListaMetodos[i].getName().startsWith("is") )
                        {
                                try {
                                        Class umaClasse = 
umaListaMetodos[i].getReturnType();
                                        Object objRetornado1 = 
umaListaMetodos[i].invoke(o1, null );
                                        Object objRetornado2 = 
umaListaMetodos[i].invoke(o2, null );
                                        
                                        if( !objRetornado1.equals( 
objRetornado2 ) )
                                                return 1;
                                        
                                        else if( umaClasse == 
int.class ){
                                                ehDiferente = true;
                                                System.out.println
( "Metodo: "+umaListaMetodos[i].toGenericString() );
                                                
                                        }else if( umaClasse == 
String.class ){
                                                ehDiferente = true;
                                                System.out.println
( "Metodo: "+umaListaMetodos[i].toGenericString() );
                                        
                                        }else if( umaClasse == 
long.class ){
                                                ehDiferente = true;
                                                System.out.println
( "Metodo: "+umaListaMetodos[i].toGenericString() );
                                        
                                        }else if( umaClasse == 
double.class ){
                                                ehDiferente = true;
                                                System.out.println
( "Metodo: "+umaListaMetodos[i].toGenericString() );
                                        
                                        }else if( umaClasse == 
short.class ){
                                                ehDiferente = true;
                                                System.out.println
( "Metodo: "+umaListaMetodos[i].toGenericString() );
                                        
                                        }else if( umaClasse == 
byte.class ){
                                                ehDiferente = true;
                                                System.out.println
( "Metodo: "+umaListaMetodos[i].toGenericString() );
                                        
                                        }else if( umaClasse == 
char.class ){
                                                ehDiferente = true;
                                                System.out.println
( "Metodo: "+umaListaMetodos[i].toGenericString() );
                                        
                                        }else if( umaClasse == 
boolean.class ){
                                                ehDiferente = true;
                                                System.out.println
( "Metodo: "+umaListaMetodos[i].toGenericString() );
                                        
                                        }else if( umaClasse == 
float.class ){
                                                ehDiferente = true;
                                                System.out.println
( "Metodo: "+umaListaMetodos[i].toGenericString() );
                                        
                                        }else
                                                compare( 
objRetornado1, objRetornado2 );
                                }
                                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