相关疑难解决方法(0)

Groovy,附上函数的名字?

我正在使用Groovy 1.8.4,试图得到封闭函数的名称......

def myFunction() {
  println functionName??
}
Run Code Online (Sandbox Code Playgroud)

我试过delegate,this,owner,Groovy的抱怨没有找到这样的对象.

我也试过Java hack new Exception().getStackTrace()[0].getMethodName(),但那只是打印newInstance0

reflection groovy function introspection

10
推荐指数
3
解决办法
7687
查看次数

Groovy - 覆盖单个实例的invokeMethod

我有一个java对象的实例,比方说一个名为myList的ArrayList实例.

对于这个特定的实例,我想重写invokeMethod方法,以便(比方说)调用该方法.

我可以这样做:

myList.metaclass.invokeMethod { name, args -> 

   println "Called ${name} with ${args}"
   whatGoesHere.invokeMethod(name, args)

}
Run Code Online (Sandbox Code Playgroud)

注意闭包的第二行 - 如何调用原始的invokeMethod方法?我正确地谈到这个吗?

groovy metaprogramming

4
推荐指数
1
解决办法
1704
查看次数