Groovy / grails how to determine a data type?
What is the best way to determine the data type in groovy?
I'd like to 开发者_StackOverflow中文版format the output differently if it's a date, etc.
To determine the class of an object simply call:
someObject.getClass()
You can abbreviate this to someObject.class
in most cases. However, if you use this on a Map
it will try to retrieve the value with key 'class'. Because of this, I always use getClass()
even though it's a little longer.
If you want to check if an object implements a particular interface or extends a particular class (e.g. Date) use:
(somObject instanceof Date)
or to check if the class of an object is exactly a particular class (not a subclass of it), use:
(somObject.getClass() == Date)
Simple groovy way to check object type:
somObject in Date
Can be applied also to interfaces.
Just to add another option to Dónal's answer, you can also still use the good old java.lang.Object.getClass()
method.
You can use the Membership Operator isCase() which is another groovy way:
assert Date.isCase(new Date())
somObject instanceof Date
should be
somObject instanceOf Date
精彩评论