No Programming, No Life

プログラミング関連の話題や雑記

現場で使えるGroovy(その3)「JavaにREPLが無いならgroovysh, groovyConsoleを使えばいいじゃない」

このシリーズの一覧はこちら

はじめに

ご存知の通り、JavaにはREPLがありません。しかし残念がることはありません、そう、あなたにはGroovyが付いています。

Groovyがこれらの特性とJavaとの親和性を高いレベルで同時に実現していることです。
          (中略)
Javaに極めて近い文法(ほぼ上位互換)
JavaコードはおおむねそのままGroovyコードとしても動作
          (中略)
JDKの標準ライブラリやサードパーティのライブラリ/フレームワークもすべて共用可能
          (中略)

『プログラミングGroovy』P8 より

ということで、GroovyのREPLであるgroovyshや、groovyshよりも便利なgroovyConsoleを利用すればJava自体のコード、クラスを素早く動かしてチェックすることができるわけです。
さっそくやってみましょう。

ケーススタディ1:Integerクラスのメソッドの挙動を知りたくなった

さて、それではたとえばIntegerクラスの static String toBinaryString(int i) メソッドの使い方が気になってしまったとしましょう、そんな時は迷わすgroovyshを起動しましょう。

$ groovysh
Groovy Shell (1.8.0, JVM: 1.6.0_26)
Type 'help' or '\h' for help.

                                                                                                                                                                                                                                            • -

groovy:000>


さて、準備は整いましたね。それではおもむろに使ってみましょう。
groovy:000>  Integer.toBinaryString(100)
===> 1100100
groovy:000>

おぉ、1100100 という答えが返ってきましたね。これはもちろんJavaで試した場合も同じ挙動をするはずです。だってIntegerはJava標準ライブラリですからね。

ではお次はgroovyConsoleを使ってみましょう。groovyConsoleの起動方法はいくつかありますが、ここではコマンドラインから起動させてみます。

$ groovyConsole 

f:id:fumokmm:20110708222423p:image

起動しましたか?ではさっきと同じようにInteger.toBinaryString(100)をやってみましょう。
f:id:fumokmm:20110708222424p:image

入力が完了したら、Ctrl + R *1で実行です。
groovyConsoleを使えば少しコードを書き換えて何度も実行してみる時にとても重宝します。
さらに、Groovyの機能もすべてが使えるため、たとえば、1から100で値がどうなるかなどを簡単に調べてみたりすることができます。
f:id:fumokmm:20110708222425p:image

また、スクリプトとしてコードを保存できたり、スクリプトを読み込んだりして使うこともできるのです。
f:id:fumokmm:20110708222426p:image

すごく便利ですよね?

おわりに

ということで、使い方はあなた次第です。ぜひ実際の現場でもgroovysh, groovyConsoleを常に立ち上げてGroovyのみならずJavaとも戯れてみて下さい!

Enjoy your code more groovier!

参考書籍

Groovyに興味を持った方はぜひこの一冊を購入しましょう!

プログラミングGROOVY

プログラミングGROOVY

*1:Macの場合はCMD + R。