Groovy/grails как определить тип данных?

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

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

Ответ 1

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

someObject.getClass()

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

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

(somObject instanceof Date)

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

(somObject.getClass() == Date)

Ответ 2

Простой способ groovy для проверки типа объекта:

somObject in Date

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

Ответ 3

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

Ответ 4

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

assert Date.isCase(new Date())

Ответ 5

somObject instanceof Date

должен быть

somObject instanceof Date