如何确定Groovy中调用对象的数据类型?

时间:2015-03-31 16:46:47

标签: groovy

当我在Groovy中调用函数时,如何确定调用者的类?

例如,我想知道foo函数中printFoo()的类是什么:

foo.printFoo()

def printFoo() {
  print(this.class)
}

这应打印出foo

的课程

2 个答案:

答案 0 :(得分:3)

我不知道任何特定于Groovy的方式,但您可以使用object.getClass().name获取类名。那是你在找什么?

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

object instanceof Date

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

object.getClass() == Date

还有in运算符:object in Date

答案 1 :(得分:1)

语言和运行时不提供可靠的机制来完成您的要求。你可以做一些pokey jiggery检查堆栈帧,但这是非常详细的低级别的东西,并且由于许多原因而不能真正可靠。简短的回答是,语言并不支持它。