Help - usando a palavra chave instanceof

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…