Sobes.tech
Junior — Middle

Quais passos devem ser tomados para implementar a sobrescrição do método hashCode na classe?

sobes.tech IA

Resposta da IA

Para a implementação correta do método hashCode numa classe, deve-se:

  1. Selecionar os campos que influenciam a igualdade dos objetos (normalmente os mesmos usados em equals).
  2. Utilizar um algoritmo estável e eficiente para calcular o hash, considerando os campos selecionados.
  3. Cumprir o contrato entre equals e hashCode: se dois objetos forem iguais segundo equals, os seus hashCode devem ser iguais.

Exemplo de sobrescrita de hashCode:

@Override
public int hashCode() {
    int result = 17;
    result = 31 * result + (field1 != null ? field1.hashCode() : 0);
    result = 31 * result + (field2 != null ? field2.hashCode() : 0);
    return result;
}

Onde field1 e field2 são os campos que participam na comparação de objetos. Pode-se usar Objects.hash(field1, field2) para simplificar.