[Resolvido]Comparar objetos em classes diferentes

2 respostas
marciojesus

Bom galera, estou tentando entender porque nao consigo comparar dois objetos ou seus atributos em classes diferentes,
caso seja na mesma classe Test funciona, mas qdo chamo da classe checking para test ela sempre da false ou true, mesmo sendo diferente os atributos.
Obs: estou comparando dados q digito no Scanner q passa para a variavel.
Grato pela ajuda, alias estou pesquisando no GOOGLE, antes q alguem diga q eu nao estou pesquisando.

2 Respostas

asousaj

Cara, tem mais de uma forma de resolver isso.
Tenha em mente que não deve usar equals para isso, é ideal que sempre sobrescreva o método equals mas para comprarar com o mesmo tipo de objeto.

Opção 1

O que pode fazer é criar um método que recebe os 2 tipos de objetos e compara-los de acordo com teus critérios.

public class Utilidades{ public static boolean semelhantes(Classe1 c1, Classe2 c2){ // compara e retorna se atente ou nao return false;//ou true } }

Opção 2

Ou usar uma interface

public interface NameProvider { String getName(); }
Agora que já implementou a interface nos 2 objetos, implemente um Comparator que compare os 2 NameProvider.

Mas aguarde que deve aparecer algum usuário com outra proposta.

marciojesus

asousaj:
Cara, tem mais de uma forma de resolver isso.
Tenha em mente que não deve usar equals para isso, é ideal que sempre sobrescreva o método equals mas para comprarar com o mesmo tipo de objeto.

Opção 1

O que pode fazer é criar um método que recebe os 2 tipos de objetos e compara-los de acordo com teus critérios.

public class Utilidades{ public static boolean semelhantes(Classe1 c1, Classe2 c2){ // compara e retorna se atente ou nao return false;//ou true } }

Opção 2

Ou usar uma interface

public interface NameProvider { String getName(); }
Agora que já implementou a interface nos 2 objetos, implemente um Comparator que compare os 2 NameProvider.

Mas aguarde que deve aparecer algum usuário com outra proposta.

Valeu pela dica, vou tentar usar as duas opcoes.
Obrigado.

Criado 14 de dezembro de 2013
Ultima resposta 15 de dez. de 2013
Respostas 2
Participantes 2