Groovy / grails如何确定一个数据types?

在groovy中确定数据types的最佳方法是什么?

如果是date等,我想格式化输出。

要确定一个对象的类简单地调用:

someObject.getClass() 

在大多数情况下,您可以将其缩写为someObject.class 。 但是,如果你在一个Map上使用它,它将尝试使用键'class'来检索值。 正因为如此,我总是使用getClass()即使它稍微长一些。

如果你想检查一个对象是否实现了一个特定的接口或扩展了一个特定的类(例如Date),使用:

 (somObject instanceof Date) 

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

 (somObject.getClass() == Date) 

简单的常规方式来检查对象types:

 somObject in Date 

也可以应用于接口。

为Don的答案添加另一个选项,您仍然可以使用古老的java.lang.Object.getClass()方法。

您可以使用会员运算符isCase()这是另一种常用的方法:

 assert Date.isCase(new Date()) 

somObject instanceof Date

应该

somObject instanceOf Date