0

現在、Groovy 1.8.2を使用しており、次のコードが期待どおりに機能します。

Class.metaClass.getAt = { args ->
    println "Called ${delegate}[${args}]"
    TypeDefinition.create(delegate, args)
}

示されているように、DSLでそれを使用します。

TypeDefinition instance = List[MyOwnClass]

Groovy 2.0.5に移行したとき、この機能は「メソッドがありません:パラメーターsome.package.MyOwnClassを持つ静的java.util.List.getAt()」で失敗しました。では、問題は、Groovy2でどのように機能させることができるかということです。

4

1 に答える 1

0

カテゴリの使用は2.0.5で機能します。

class ClassHelperCategory {
    static getAt(Class cls, String arg) {
        "Called $cls[$arg]"
    }
}

Class.metaClass.mixin(ClassHelperCategory)

assert List['hello'] == 'Called interface java.util.List[hello]'
于 2012-11-30T16:32:00.143 に答える