0

オブジェクトとクロージャを受け取るメソッドを1つのメタクラスでどのように使用しますか?

具体的には、

public void eachRow(GString gstring, Closure closure)

gstringパラメーターを出力し、Closureを無視するように、eachRow()をmetaClassします。目標は、特定のパラメーターが渡されると、groovy.sql.Sqlを使用して一種の「ドライラン」実行を行うアプリを作成することです。この場合、クエリを実行する代わりに、通常実行されるステートメントを出力するだけです。

4

1 に答える 1

1

ですから、私の問題は、メソッドをどのように定義していたかではなく、私が何であったか(または戻ってこなかったか)であったと思います。これは機能しているようです...

sql.metaClass.eachRow = { String qry, Closure c ->
    println qry
    new GroovyRowResult([:]) // I was returning null, adding this fixed me.
}
于 2012-10-01T18:01:33.057 に答える