Comparação de objetos

Olá,

Eu tenho uma classe sem a codificação de um método equals mas mesmo assim gostaria de comparar duas instâncias (objetos) desta classe e verificar se são os mesmos. Quero dizer, se possuem a mesma seqüência de bits.

Qual seria a melhor maneira de fazer isso? Reflexão?

Obrigado antecipadamente!

Reimer

A mesma sequência de “bits” é complicado companheiro, mesmo dois objetos da mesma classe não vão ficar com a mesma sequencia de bits. Isso depende muito do estado e das propriedades que eles tem.

O melhor a se fazer é implementar o método equals() com a “identidade” que você quer dar a esses objetos.

Obrigado! Concordo que deveria ser implementado o método equals realmente.

Vou ser um pouco mais específico na pergunta. Estou codificando um método que irá receber dois objetos, instâncias da mesma classe, e preciso retornar true ou false indicando se todos os atributos dos mesmos possuem o mesmo valor mas não posso confiar no equals porque não sei se foi implementado.

Será que deveria forçar a implementação do equals pelo programador, caso não estiver implementado sair com um erro?

Obrigado antecipadamente pelas sugestões!

Reimer

[quote=Maurício Linhares]A mesma sequência de “bits” é complicado companheiro, mesmo dois objetos da mesma classe não vão ficar com a mesma sequencia de bits. Isso depende muito do estado e das propriedades que eles tem.

O melhor a se fazer é implementar o método equals() com a “identidade” que você quer dar a esses objetos.[/quote]
E referencias são diferentes de ponteiros, talvez com ponteiros esta comparação até fosse possivel. :roll:

Mais ou menos… vc teria ainda sim que saber o tamanho dos objetos e de todos os membros dele na memoria pra fazer a comparacao. Eu prefiro penalizar quem nao sabe escrever equals() e hashCode() do que ir pra um caminho inseguro desses. :wink:

Ok,

A princípio irei pelo caminho do equals então!

Abraço e obrigado!

Reimer