Tenho aqui estas duas classe que servem para comparar objetos e 
retornar seus dados de classe (metodos, campos, nomes de classe e 
metodos etc) so que não sei como conecto esse dois programas quero 
chamar o ReflectionTeste no ultimo else da classe CompareObjetos , 
estou começando agora e tenho duvidas basicas em alguns casos. 

ai vai os codigos: 

Code: 
 import java.lang.reflect.*;
 import TesteLeo.ReflectionTeste.*;
 
 public class CompareObjetos 
 {
        public static void main( String args[] )
        {
                 //ClasseTeste o1, o2;
            //o1 = new ClasseTeste();
         //o2 = new ClasseTeste();
                
                Employee o1 = new Employee( "Leonardo", "Schmitt",7, 
24, 49, 3, 12, 88 );
                Employee o2 = new Employee( "Leonardo", "Schmitt", 
7, 24, 49, 3, 12, 88 );
                
                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 );
                                        String nameobj = o1.getClass
().getName();
                                                                
                
                                        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
                                                Class.forName
( "TesteLeo.ReflectionTeste " + nameobj ); // quero o chamar aqui 
mas não tenho certeza como
                                
                                                                    /
/ esse instruçao não retorna nada.
                                }
                                catch( Exception e ){ 
e.printStackTrace(); }
                        }
                }
                return 1;
        }
        
 }      
 
 


e a classe refletionteste é a seguinte: 

Code: 
 package TesteLeo;
 
 import java.lang.reflect.*;
 import java.util.*;
 
 public class ReflectionTeste 
 {
        public static void main( String args[] )
        {
                String name;
                if( args.length > 0 )
                        name = args[0];
                else
                {
                        Scanner in = new Scanner( System.in );
                        System.out.println( "Entre com o nome da 
classe: (ex: java.util.Date)");
                        name = in.next();
                } 
                //public ReflectionTeste( String name )
                //{
            try
                {
                        Class cl = Class.forName( name );
                        Class supercl = cl.getSuperclass();
                        System.out.println("class " + name );
                        if( supercl != null && supercl != 
Object.class )
                                System.out.print(" extends " + 
supercl.getName() );
                        
                        System.out.print("{\n");
                        printConstructors(cl);
                        System.out.println();
                        printMethods(cl);
                        System.out.println();
                        printFields(cl);
                        System.out.println("\n}");
                }
                catch( ClassNotFoundException e ) { e.printStackTrace
(); }
                System.exit( 0 );
                
        }
        
        /**
         * Mostra todos os contrutores da classe
         * @param cl a class
         */
        
        public static void printConstructors( Class cl )
        {
                Constructor[] constructors = 
cl.getDeclaredConstructors();
                
                for( Constructor c : constructors )
                {
                        String name = c.getName();
                        System.out.print(" " + Modifier.toString
(c.getModifiers() ) );
                        System.out.print(" "+ name + "(" );
                        
                        //Mostra tipos
                        Class[] paramTypes = c.getParameterTypes();
                        for( int j = 0; j < paramTypes.length; j++ )
                        {
                                if( j > 0 ) System.out.println(", ");
                                System.out.print( paramTypes
[j].getName() );
                        }
                        System.out.println( ");" );
                }
        }
        
        /**
         * Mostra todos os metodos da classe
         * @param cl a class
         */
        
        public static void printMethods( Class cl )
        {
                Method[] methods = cl.getDeclaredMethods();
                
                for( Method m : methods )
                {
                        Class refType = m.getReturnType();
                        String name = m.getName();
                        
                        System.out.print(" " + Modifier.toString
(m.getModifiers() ) );
                        System.out.print(" "+ refType.getName() 
+ " " + name + "(" );
                        
                        //Mostra tipos
                        Class[] paramTypes = m.getParameterTypes();
                        for( int j = 0; j < paramTypes.length; j++ )
                        {
                                if( j > 0 )System.out.println(", ");
                                System.out.print( paramTypes
[j].getName() );
                        }
                        System.out.println(");");
                }
        }
        
        /**
         * Mostra todos os Campos da classe
         * @param cl a class
         */
        
        public static void printFields( Class cl )
        {
                Field[] fields = cl.getDeclaredFields();
                
                for( Field f : fields )
                {
                        Class type = f.getType();
                        String name = f.getName();
                        
                        System.out.print(" " + Modifier.toString
(f.getModifiers() ) );
                        System.out.print(" "+ type.getName() + " " + 
name + ";" );
                }
        }
 
 }
 
 


agradeço à quem possa me ajudar. 




 
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