一个metaClass如何采用一个对象和一个闭包的方法?
具体来说,
public void eachRow(GString gstring, Closure closure)
我想metaClass eachRow()使得它打印gstring参数,并忽略Closure。目标是创建一个应用程序,当传递某个参数时,使用groovy.sql.Sql执行某种“干运行”执行,而不是执行查询,它只打印它通常会执行的语句。
答案 0 :(得分:1)
所以我认为我的问题不是我如何定义方法,而是我是(或没有返回)。这似乎有用......
sql.metaClass.eachRow = { String qry, Closure c ->
println qry
new GroovyRowResult([:]) // I was returning null, adding this fixed me.
}