Instanceof

6 respostas
rafaelsantini

Preciso implementar um método que receba como parâmtros um objeto e uma classe e retorne verdadeiro caso o objeto seja do tipo da classe ou false caso contrário. Exemplo:

public boolean isInstanceOf(Object object, Class clazz) { return (object instanceof clazz); }

Ao tentar compilar esse código, ocorre o seguinte erro:

cannot find symbol
symbol : class clazz

Alguma sugestão?

6 Respostas

T
public boolean isInstanceOf(Object object, Class clazz) {
    if (object == null) return false;
    else return clazz.isAssignableFrom (object.getClass());
}
LPJava

so uma duvida Class é algum tipo?
Vc so pode usar instanceof para aquilo que passa no teste É-UM.

agora esse seu Class clazz nunca vi na vida… de onde vc tirou isso?

T

LPJava, o tipo é java.lang.Class, que é normalmente usado em reflection. Você se lembra do “Class.forName”?

rafaelsantini

Thingol,

Com a sua dica acabei descobrindo o método isInstance. Preferi usar esse.

public static boolean isInstanceOf(Object object, Class clazz) { return clazz.isInstance(object); }

Grato!

T

Puxa, é mais fácil mesmo. Eu só me lembrava do “isAssignableFrom”, que não é tão intuitivo assim.

LPJava

thingol:
LPJava, o tipo é java.lang.Class, que é normalmente usado em reflection. Você se lembra do “Class.forName”?

puts que vacilo… eh nao sabia nao thingol…

Criado 10 de março de 2008
Ultima resposta 10 de mar. de 2008
Respostas 6
Participantes 3