Каков наилучший способ определения типа данных в groovy?Groovy/grails как определить тип данных?
Я хотел бы формат вывода по-другому, если это дата и т.д.
Каков наилучший способ определения типа данных в groovy?Groovy/grails как определить тип данных?
Я хотел бы формат вывода по-другому, если это дата и т.д.
Чтобы определить класс объекта просто вызовите:
someObject.getClass()
Вы можете сократить это someObject.class
в большинстве случаев , Однако, если вы используете это на Map
, он попытается получить значение с помощью ключа «class». Из-за этого я всегда использую getClass()
, хотя это немного дольше.
Если вы хотите проверить, если объект реализует определенный интерфейс или расширяет конкретный класс (например, дата) использование:
(somObject instanceof Date)
или проверить, если класс объекта является точно конкретный класс (не подкласс этого), используйте:
(somObject.getClass() == Date)
Просто добавить еще один вариант ответа Дона, вы можете все еще использовать старый добрый java.lang.Object.getClass()
метод.
somObject instanceof Date
должен быть
somObject instanceOf Date
Неправильное использование. 'instanceof' должен быть в нижнем регистре. – cdeszaq
Простой заводной способ проверить тип объекта:
somObject in Date
Может применяться также к интерфейсам.
Самое главное решение – user615274
Вы можете использовать членство оператор isCase(), который является еще одним заводным способом:
assert Date.isCase(new Date())
'instanceof' отлично подходит для фильтрации на основе интерфейса. – cdeszaq
По крайней мере, в последнем Groovy (2.3.7) мы также можем написать someObject.class – loloof64
@LaurentBERNABE, который работает в большинстве случаев, но не во всех, например. экземпляр 'Map' –