public class StatusAgentesFilasAtualVO
{
private String codFila;
private int nroAgente;
private int qtdChamAtendidas;
private int horUltimaChamada;
private String idtStatus;
private int statusPausa;
public String getCodFila()
{
return codFila;
}
public void setCodFila(String codFila)
{
this.codFila = codFila;
}
[b]....... Outros getters e setters[/b]
// Verifica se os objetos sao equivalentes
public boolean equals(Object o)
{
if((o instanceof StatusAgentesFilasAtualVO)&&(((StatusAgentesFilasAtualVO)o).getCodFila()==this.codFila))
{
return true;
}
else
{
return false;
}
}
public int hashCode ()
{
int hash = 0;
if (codFila != null)
hash = codFila.hashCode();
if (nroAgente != 0)
hash = hash * 37 + Integer.valueOf(nroAgente).hashCode();
if (qtdChamAtendidas != 0)
hash = hash * 37 + Integer.valueOf(qtdChamAtendidas).hashCode();
if (horUltimaChamada != 0)
hash = hash * 37 + Integer.valueOf(horUltimaChamada).hashCode();
if (idtStatus != null)
hash = hash * 37 + idtStatus.hashCode();
if (statusPausa != 0)
hash = hash * 37 + Integer.valueOf(statusPausa).hashCode();
return hash;
}
}
Dúvidas com hashCode e equals
B
Galera, tenho o seguinte objeto. Gostaria de diferenciar um objeto de outro através do atributo codFila. Para isso sobrescrevi os métodos equals e hashCode. Porém não está dando certo!!!!
4 Respostas
Dentro do método equals() você está comparando os atributos codFila usando o operador ==. como codFila é uma String, você não está comparando o valor da String, mas sim seu endereço de memória. Você precisa comparar assim:
...
return obj.getcodFila().equals(this.codFila);
P
Lembrando que, por convenção:
Se a.equals(b) == true, então a.hashCode == b.hashCode
Se a.hashCode == b.hashCode, então talvez a.equals(b) == true.
Quebre a linha do IF no método equals, por que não dá para ler tudo.
Lembrando que, por convenção:Se
a.equals(b)== true, então a.hashCode == b.hashCode
Isso mesmo. mas nem é convencao, é uma obrigacao sua… contrato da classe Object…
Criado 20 de julho de 2007
Ultima resposta 20 de jul. de 2007
Respostas 4
Participantes 5
Alura O que é Python? — um guia completo para iniciar nessa linguagem de programação Acesse agora o guia sobre Python e inicie sua jornada nessa linguagem de programação: o que é e para que serve, sua sintaxe e como iniciar nela!
Casa do Codigo Engenharia de Prompt para Devs: Um guia para aprender a... Por Ricardo Pupo Larguesa — Casa do Codigo