Preciso sobrescrever hasCode eequals?

3 respostas
marcioa1

Olá,

Tenho a seguitne classe enumerada do java 5
public enum Tipo {
	SADT,
	CENTRO_MEDICO_ESHO,
	HOME_CARE_ESHO,
	SADT_ESHO,
	HOSPITAL_ESHO,
	HOSPITAL,
	PRONTO_SOCORRO,
	MATERIAL_ORTESE_E_PROTESE, 
	ANESTESISTA, 
	OUTROS,
	CONSULTORIOS,
	CENTROS_MEDICOS,
	CLINICA_ESPECIALIZADAS,
	HOSPITAL_AMBULATORIO,
	CENTRO_MEDICO_DIX;


	public String toString(){
		switch(this){
		case SADT: return "SADT";
		case CENTRO_MEDICO_ESHO: return "CENTRO MÉDICO ESHO";
		case HOME_CARE_ESHO: return "HOME CARE ESHO";
		case SADT_ESHO: return "SADT ESHO";
		case HOSPITAL_ESHO: return "HOSPITAL ESHO";
		case HOSPITAL: return "HOSPITAL";
		case PRONTO_SOCORRO: return "PRONTO SOCORRO";
		case MATERIAL_ORTESE_E_PROTESE: return "MATERIAL DE ÓRTESE E PRÓTESE";
		case ANESTESISTA: return "ANESTESISTA";
		case OUTROS: return "OUTROS";
		case CONSULTORIOS: return "CONSULTÓRIOS";
		case CENTROS_MEDICOS: return "CENTROS MÉDICOS";
		case CLINICA_ESPECIALIZADAS: return "CLÍNICAS ESPECIALIZADAS";
		case HOSPITAL_AMBULATORIO: return "HOSPITAL AMBULATÓRIO";
		case CENTRO_MEDICO_DIX: return "CENTRO MÉDICO DIX";
		default : return "Não encontrado";
		}
	}

Para fazer comparações com o equals ( de classes enum ) , eu preciso sobreescrever o equals() e o hasCode() ?

Márcio

3 Respostas

Thiago_Senna

se vc vai fazer apenas comparações, basta sobrescrever o método equals.

Mas se vc por acaso colocar objetos desta classe em coleções como HashMap ou HashSet por exemplo, vc precisará implementar o hashcode!

Abraços!
Thiago

marcioa1

Não sobrescrevi o método equals e ele funcionou. Deve ser uma implementação dos enum.

Obrigado,

Márcio

Gerson

marcioa1:
Não sobrescrevi o método equals e ele funcionou. Deve ser uma implementação dos enum.

Obrigado,

Márcio

Não precisa reesecrever nao… ele ja vem sobreescrito!
Ou se quiser pode usar == q é a mesma coisa (é o q ele faz no equals)…

Criado 23 de junho de 2005
Ultima resposta 23 de jun. de 2005
Respostas 3
Participantes 3