¿Cuál es la forma más fácil de hacer 'es' en Java?
-
04-07-2019 - |
Pregunta
Muchos idiomas tienen una facilidad para verificar si un Objeto es de un tipo determinado (incluidas las subclases principales), implementado con 'es' y utilizado de esta manera:
if(obj is MyType)
O un poco más tediosamente, puede verificar en otros idiomas usando la palabra clave 'as' para hacer un encasillado suave y ver si el resultado es nulo.
No he usado Java en años y estoy volviendo a la velocidad, pero seguramente Java tiene una manera de hacerlo 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.
Solución
if (objectReference instanceof type){
//Your code goes here
}
Más información aquí .
Otros consejos
Solo puede usar instanceof
con un literal de clase: es decir:
Class type = String.class;
if (myObj instanceof String) // will compile
if (myObj instanceof type) //will not compile
La alternativa es usar el método Class.isInstance
if (type.isInstance(myObj)) // will compile
obj instanceof TargetType
devuelve true en caso de que TargetType
esté en la jerarquía de tipos que contiene obj
.
Consulte Tutorial de Sun