¿Cuál es la mejor manera de determinar el tipo de datos en groovy?Groovy/grails cómo determinar un tipo de datos?
me gustaría dar formato a la salida diferente si se trata de una fecha, etc.
¿Cuál es la mejor manera de determinar el tipo de datos en groovy?Groovy/grails cómo determinar un tipo de datos?
me gustaría dar formato a la salida diferente si se trata de una fecha, etc.
Para determinar la clase de un objeto simplemente llaman:
someObject.getClass()
se puede abreviar esto a 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 utilizo getClass()
aunque es un poco más largo.
Si desea comprobar si un objeto implementa una interfaz en particular o se extiende una clase particular (por ejemplo, Fecha) utilizar:
(somObject instanceof Date)
o para comprobar si la clase de un objeto es exactamente una clase particular (no es una subclase de la misma), utilice:
(somObject.getClass() == Date)
sólo para añadir otra opción de respuesta de Don, también se puede seguir utilizando el viejo método buena java.lang.Object.getClass()
.
somObject instanceof Date
debería ser
somObject instanceOf Date
Esto no es correcto. 'instanceof' debe estar todo en minúsculas. – cdeszaq
manera maravilloso simple para comprobar el tipo de objeto:
somObject in Date
Se puede aplicar también a las interfaces.
solución más maravillosa hasta el momento – user615274
Se puede utilizar el operador de miembro isCase() que es otra forma maravillosa:
assert Date.isCase(new Date())
'instanceof' es grande para el filtrado basado en la interfaz. – cdeszaq
Al menos en el último Groovy (2.3.7), también podemos escribir algúnObjeto.class – loloof64
@LaurentBERNABE que funcione en la mayoría de los casos, pero no en todos, p. una instancia 'Map' –