当我在Groovy中调用函数时,如何确定调用者的类?
例如,我想知道foo
函数中printFoo()
的类是什么:
foo.printFoo()
def printFoo() {
print(this.class)
}
这应打印出foo
答案 0 :(得分:3)
我不知道任何特定于Groovy的方式,但您可以使用object.getClass().name
获取类名。那是你在找什么?
如果要检查对象是实现特定接口还是扩展特定类(例如Date),请使用:
object instanceof Date
或检查对象的类是否完全是特定类(不是它的子类),使用:
object.getClass() == Date
还有in
运算符:object in Date
答案 1 :(得分:1)
语言和运行时不提供可靠的机制来完成您的要求。你可以做一些pokey jiggery检查堆栈帧,但这是非常详细的低级别的东西,并且由于许多原因而不能真正可靠。简短的回答是,语言并不支持它。