Groovy / Grails, как определить тип данных? - PullRequest
162 голосов
/ 14 января 2010

Каков наилучший способ определения типа данных в groovy?

Я бы хотел отформатировать вывод по-разному, если это дата и т. Д.

Ответы [ 5 ]

226 голосов
/ 14 января 2010

Чтобы определить класс объекта, просто позвоните:

someObject.getClass()

Вы можете сократить это значение до someObject.class в большинстве случаев. Однако, если вы используете это на Map, он попытается получить значение с помощью ключа 'class'. Из-за этого я всегда использую getClass(), хотя это немного дольше.

Если вы хотите проверить, реализует ли объект определенный интерфейс или расширяет определенный класс (например, Date), используйте:

(somObject instanceof Date)

или чтобы проверить, является ли класс объекта точно конкретным классом (не его подклассом), используйте:

(somObject.getClass() == Date)
30 голосов
/ 10 ноября 2013

Простой простой способ проверки типа объекта:

somObject in Date

Может применяться и к интерфейсам.

3 голосов
/ 17 марта 2010

Просто чтобы добавить еще один вариант ответа Дона, вы также можете использовать старый добрый java.lang.Object.getClass() метод.

0 голосов
/ 10 сентября 2016

Вы можете использовать оператор членства isCase (), который является еще одним отличным способом:

assert Date.isCase(new Date())
0 голосов
/ 28 сентября 2012

somObject instanceof Date

должно быть

somObject instanceOf Date

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...