Groovy/grails如何确定数据类型?

Groovy/grails如何确定数据类型?,groovy,types,Groovy,Types,在groovy中确定数据类型的最佳方法是什么 如果是日期等,我希望以不同的格式输出。要确定对象的类别,只需调用: someObject.getClass() 在大多数情况下,您可以将其缩写为someObject.class。但是,如果在映射上使用此选项,它将尝试使用键“class”检索值。因此,我总是使用getClass(),即使它稍微长一点 如果要检查对象是否实现特定接口或扩展特定类(例如日期),请使用: 或者,要检查对象的类是否恰好是一个特定的类(不是它的子类),请使用: 为了给Dónal

在groovy中确定数据类型的最佳方法是什么


如果是日期等,我希望以不同的格式输出。

要确定对象的类别,只需调用:

someObject.getClass()
在大多数情况下,您可以将其缩写为
someObject.class
。但是,如果在
映射上使用此选项,它将尝试使用键“class”检索值。因此,我总是使用
getClass()
,即使它稍微长一点

如果要检查对象是否实现特定接口或扩展特定类(例如日期),请使用:

或者,要检查对象的类是否恰好是一个特定的类(不是它的子类),请使用:


为了给Dónal的答案添加另一个选项,您仍然可以使用好的
java.lang.Object.getClass()
方法。

somObject instanceof Date

应该是


somObject instanceOf Date

检查对象类型的简单groovy方法:

somObject in Date

也可以应用于接口。

您可以使用成员资格运算符isCase(),这是另一种groovy方式:

assert Date.isCase(new Date())

这是不对的
instanceof
应该都是小写。
instanceof
非常适合基于接口进行过滤。至少在最新的Groovy(2.3.7)中,我们还可以编写一些对象。class@LaurentBERNABE这在大多数情况下都有效,但并非所有情况下都有效,例如
Map
instanceYou是对的:在这种情况下我们得到null。为错误道歉。那这是什么
def test={}println test.getClass()
class Script1$\u run\u closure1??
somObject in Date
assert Date.isCase(new Date())