¿Cuál es la mejor manera de determinar el tipo de datos en groovy?
Me gustaría formatear la salida de manera diferente si es una fecha, etc.
Para determinar la clase de un objeto simplemente llame:
someObject.getClass()
Puede abreviar esto someObject.class
en la mayoría de los casos. Sin embargo, si usa esto en un Map
, intentará recuperar el valor con la clave 'clase'. Debido a esto, siempre usogetClass()
aunque sea un poco más largo.
Si desea verificar si un objeto implementa una interfaz particular o extiende una clase particular (por ejemplo, Fecha) use:
(somObject instanceof Date)
o para verificar si la clase de un objeto es exactamente una clase particular (no una subclase de él), use:
(somObject.getClass() == Date)
instanceof
Es ideal para el filtrado basado en la interfaz.Map
instanciadef test = {} println test.getClass()
clase Script1 $ _run_closure1 ??Manera simple y maravillosa de verificar el tipo de objeto:
Se puede aplicar también a las interfaces.
fuente
Solo para agregar otra opción a la respuesta de Dónal, también puedes usar el
java.lang.Object.getClass()
método antiguo .fuente
Puede usar el Operador de membresía isCase (), que es otra forma genial:
fuente
somObject instanceof Date
debiera ser
somObject instanceOf Date
fuente
instanceof
debería estar todo en minúsculas.