Groovyで定義したクラスのインスタンス化
なんだかとてもひさびさにgroovyを触ってみました。
クラスパスが通っていればGroovyから別のファイルに定義してあるGroovyのクラスがインスタンス化できるんですね。知りませんでした。Eclipseでgroovyファイルをclasspathが通るとこにおいて、GroovyShellのmainメソッドの引数にスクリプトファイルのlocationを渡して呼ぶとサクっと動きました。(コマンドラインから動かすとiPersonクラスを作るところでワーニングが出る...。何が違うんだろ)
Hoge.groovy : mainメソッドをもちPersonをインスタンス化する。
package nt.groovy import java.net.* class Hoge { static main(args) { p = new Person(name:"taedium", url:new URL("http://d.hatena.ne.jp/taedium/")) println p.speak() } }
Person.groovy : 2つのプロパティと1つのメソッドをもつ。
package nt.groovy class Person { property name property url String speak() { "My name is ${name}. My diary's ulr is '${url}'." } }
結果
My name is taedium. My diary's ulr is 'http://d.hatena.ne.jp/taedium/'
中学生の英語みたいでちょっと例がかっこ悪いかも。