5

私は Groovy カテゴリを使用する DSL の下で作業しており、use(MyCategory){ myObject.doSomething() }コマンドごとに明示的に記述せずに Groovy シェルで DSL を使用する方法を見つけたいと考えています。

たとえば、次のおもちゃのカテゴリがあるとします。

class MyCategory {
    static Integer plus(Integer integer, String string){
        return integer + Integer.valueOf(string)
    }
}

次に、このカテゴリをgroovysh次のように使用できます。

groovy> use(MyCategory){ 2 + '3' } //gives 5

それで、すべてのコマンドMyCategoryに対してグローバルに設定する方法はありますか? 例えば:groovyshuse(MyCategory) { ... }

groovy> useGlobally(MyCategory); //call something like this only once
groovy> 2 + '3' //automatically uses MyCategory and gives 5
4

1 に答える 1