2008-10-26 25 views
6

Muchas lenguas tienen una facilidad para comprobar si un objeto es de un tipo determinado (incluyendo las subclases de los padres), implementado con 'es' y se utiliza de esta manera:¿Cuál es la forma más fácil de hacer 'es' en Java?

if(obj is MyType) 

o un poco más tedioso que puede en otra los idiomas se comprueban usando la palabra clave 'como' para hacer un tipo de transmisión suave y ver si el resultado es nulo.

No he usado Java en años y estoy volviendo a estar al día con él, pero seguramente Java tiene una manera de hacer esto fácilmente sin profundizar en las API de Reflection.

Gracias de antemano por las respuestas. He buscado tanto aquí como en otros lugares, pero las palabras clave involucradas son tan genéricas que, aunque estoy seguro de que esto tiene una respuesta simple, buscar en Google es difícil.

Respuesta

16
if (objectReference instanceof type){ 
    //Your code goes here 
} 

Más información here.

+0

oh sí, eso es exactamente lo Estaba buscando. Gracias. –

1

obj instanceof TargetType devuelve true solo en caso de que TargetType esté en la jerarquía de tipos que contiene obj.

Ver Sun's tutorial

7

Sólo puede utilizar instanceof con una clase literal: es decir:

Class type = String.class; 

if (myObj instanceof String) // will compile 

if (myObj instanceof type) //will not compile 

La alternativa es utilizar el método Class.isInstance

if (type.isInstance(myObj)) // will compile 
Cuestiones relacionadas