por favor, pq dá erro de compilação ao chamar o método? aliás está correta a minha lógica pra retornar falso ou verdadeiro?
em qual parte do sistema uso o instanceof na vida real?
[code] public boolean equals(CriarMetodo other){
return other instanceof CriarMetodo;
}
CriarMetodo cm = new CriarMetodo();[/code]
[quote=andredecotia]por favor, pq dá erro de compilação ao chamar o método? aliás está correta a minha lógica pra retornar falso ou verdadeiro?
em qual parte do sistema uso o instanceof na vida real?
[code] public boolean equals(CriarMetodo other){
return other instanceof CriarMetodo;
}
CriarMetodo cm = new CriarMetodo();[/code][/quote]
Por partes:
Se sua intenção é sobreescrever o método equals da classe object, está errado. A assinatura do método deve receber object, não CriarMetodo.
O operador instanceof serve pra vc ver se um objeto é da mesma classe/ou uma subclasse da classe q vc está comparando. isso não é um bom critério de igualdade, já que todas as instancias da classe passariam a ser iguais. Vc deveria utilizar testes adicionais.
da uma lida:
http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/java/lang/Object.html
http://java-i9se.blogspot.com/2009/04/igualdade-em-java-equals-e-hashcode.html
http://blog.caelum.com.br/2006/09/04/ensinando-que-e-o-hashcode/
se voce quer reescrever o equal um modo seria assim…
public boolean equals(Object object) {
if (!(object instanceof Area)) {
return false;
}
Area other = (Area) object;
if ((this.idArea == null && other.idArea != null) || (this.idArea != null && !this.idArea.equals(other.idArea))) {
return false;
}
return true;
}
nesse caso essa classe minha e uma de entidade…