Groovy / grails ¿cómo determinar un tipo de datos?
¿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.
5 answers
Para determinar la clase de un objeto simplemente llame:
someObject.getClass()
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 'class'. Debido a esto, siempre uso getClass()
a pesar de que es un poco más largo.
Si desea verificar si un objeto implementa una interfaz en particular o extiende una clase en particular (por ejemplo, Date) use:
(somObject instanceof Date)
O para comprobar si la clase de un objeto es exactamente un particular class (no una subclase de la misma), use:
(somObject.getClass() == Date)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-22 08:24:51
Forma sencilla de comprobar el tipo de objeto:
somObject in Date
Se puede aplicar también a interfaces.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-09 20:02:13
Solo para agregar otra opción a la respuesta de Don, también puede usar el buen método java.lang.Object.getClass()
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-17 15:56:30
Puedes usar el Operador de Membresía isCase (), que es otra forma genial:
assert Date.isCase(new Date())
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-25 09:36:09
somObject instanceof Date
Debe ser
somObject instanceOf Date
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-12 13:13:42