Help - usando a palavra chave instanceof

2 respostas
A

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?

public boolean equals(CriarMetodo other){
		return other instanceof CriarMetodo;
	}

	CriarMetodo cm = new CriarMetodo();

2 Respostas

mario.fts
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?
public boolean equals(CriarMetodo other){
		return other instanceof CriarMetodo;
	}

	CriarMetodo cm = new CriarMetodo();

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:
[url]http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/java/lang/Object.html[/url]
[url]http://java-i9se.blogspot.com/2009/04/igualdade-em-java-equals-e-hashcode.html[/url]
[url]http://blog.caelum.com.br/2006/09/04/ensinando-que-e-o-hashcode/[/url]

C

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…

Criado 16 de julho de 2010
Ultima resposta 16 de jul. de 2010
Respostas 2
Participantes 3