0
如果我有一个方法,像这样:有没有办法将参数作为集合列出来?
void someMethod(int one, int two, int three)
{
log.debug("One = ${one}, two = ${two}, three = ${three}")
}
有没有办法避免的借记消息列出每个PARAM?我想打印出所有参数的值,而不必单独列出每个参数。
如果我有一个方法,像这样:有没有办法将参数作为集合列出来?
void someMethod(int one, int two, int three)
{
log.debug("One = ${one}, two = ${two}, three = ${three}")
}
有没有办法避免的借记消息列出每个PARAM?我想打印出所有参数的值,而不必单独列出每个参数。
你可以使用可变参数:
void someMethod(int... args) {
println "Args = $args"
}
担心超过3个参数,得到调用时使用的方法?然后确保您只处理args[0]
至args[2]
内部的方法。
你也可以使用拦截器构造:
class Sample {
void someMethod(int one, int two, int three) {
// println("One = ${one}, two = ${two}, three = ${three}")
}
}
class SampleInterceptor implements Interceptor {
boolean doInvoke() {
true
}
Object beforeInvoke(Object obj, String name, Object[] args) {
if(name == "someMethod")
println args
}
Object afterInvoke(Object obj, String name, Object[] args, Object result) {
result
}
}
def proxy = ProxyMetaClass.getInstance(Sample)
def interceptor = new SampleInterceptor()
proxy.interceptor = interceptor
proxy.use {
def h = new Sample()
h.someMethod(1,2,3)
}
看一看的sample。