【发布时间】:2011-01-04 20:23:06
【问题描述】:
在 groovy 中确定数据类型的最佳方法是什么?
如果是日期等,我想以不同的方式格式化输出。
【问题讨论】:
在 groovy 中确定数据类型的最佳方法是什么?
如果是日期等,我想以不同的方式格式化输出。
【问题讨论】:
要确定对象的类别,只需调用:
someObject.getClass()
在大多数情况下,您可以将其缩写为 someObject.class。但是,如果您在Map 上使用它,它将尝试使用键“class”检索值。因此,我总是使用getClass(),即使它有点长。
如果您想检查对象是否实现了特定接口或扩展了特定类(例如 Date),请使用:
(somObject instanceof Date)
或检查一个对象的类是否完全是一个特定的类(不是它的子类),使用:
(somObject.getClass() == Date)
【讨论】:
instanceof 非常适合基于接口进行过滤。
Map 实例
def test = {} println test.getClass() class Script1$_run_closure1 ??
检查对象类型的简单常规方法:
somObject in Date
也可以应用于接口。
【讨论】:
只是为 Dónal 的答案添加另一个选项,您仍然可以使用旧的 java.lang.Object.getClass() 方法。
【讨论】:
您可以使用 Membership Operator isCase() 这是另一种时髦的方式:
assert Date.isCase(new Date())
【讨论】:
somObject instanceof Date
应该是
somObject instanceOf Date
【讨论】:
instanceof 应该全部小写。