在我的groovy代码中说我已经声明了一个带有这样注释的闭包:
@GET('/heartbeat')
def myClosure = { req, res ->
res.end('OK')
}
所以现在在我的代码中我想从闭包中提取GET
注释,这样我就可以创建一些自动映射:
public void doSomething(Closure closure) {
closure.class.getAnnotations() // does not contain the GET annotation...
}
我怎么能得到它?
所以完整的代码是:
@GET('/heartbeat')
def myClosure = { req, res ->
res.end('OK')
}
public void doSomething(Closure closure) {
closure.class.getAnnotations() // does not contain the GET annotation...
}
doSomething(myClosure)
答案 0 :(得分:2)
你做不到。注释与字段相关联,而不是字段的值。关闭是该领域的价值。当你执行closure.class.getAnnotations()之类的操作时,你要求groovy.lang.Closure类上的注释,而不是那些“closure”变量所引用的对象。