Comparação de objetos

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") ) 
		   {
			   
			   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].getAnnotations());
				   }
} else if( umaClasse == String.)// String

implemente um metodo equals dentro da classe ex.

e por ai vai

LEMBRANDO que o método equals() deve receber um Object e não outro tipo de objeto.

Nao entendi muito bem , vc pode ajudar mais um pouco.

[code]public class Pessoa {
private Integer id;
private String nome;

//get e set

public boolean equals( Object o ) {
if( o == null || !(o instanceof Pessoa) ) {
return false;
}
Pessoa p = (Pessoa) o;
if( this.id == p.id && this.nome.equals(p.nome) ) {
return true;
}
return false;
}
}[/code]

Ajudou?