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

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

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

5 ответов


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

someObject.getClass()

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

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

(somObject instanceof Date)

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

(somObject.getClass() == Date)

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

somObject in Date

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


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


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

assert Date.isCase(new Date())

somObject instanceof Date

должно быть

somObject instanceOf Date