Groovyではstatic importがload / requireの代わりになる

groovyshで作業していると、ちょっとした作業はメソッドを作っておいて後から呼び出したいと言うことがあります。ところが、Groovyにはloadとかrequireが無いので、groovyshを起動するたびにコピー&ペーストしていました。

これじゃあ使いにくいからloadやrequireが欲しいと言ったら、id:nowokayさんからstatic importを教えてもらいました。

さっそく試してみたのでメモに残しておきます。

以下の内容で Hello.groovy というファイルを作ります。ポイントはsayHelloをstaticとして定義しているところ。

def static sayHello(name) {
  println "Hello, ${name}!"
}

これをgroovycでコンパイルします。

groovyc Hello.groovy

groovyshで実行するとこの通り。

groovy:000> import static Hello.*
groovy:000> sayHello("World")
Hello, World!
===> null