GroovyのGroovyClassLoaderが凄いので、ちょっとメモ
大したことのないエントリです。
Groovyって、まあ動的言語なわけですが、
さて、どうしたら動的にクラスとかを作り出せるのか、
はて?とおもっていました。
で、やっと見つけたのが、
GroovyClassLoader
です。
使い方はこんな感じ。
def loader = new GroovyClassLoader(this.getClass().getClassLoader())
def textClass = loader.parseClass(
$/
class DynamicPerson {
def age
boolean isAdult() {this.age >= 20}
}
/$
)
def dPerson = textClass.newInstance()
dPerson.age = 20
assert dPerson.isAdult() == true
文字列を
Class
として読み込んでしまう、おそろしい機能ですね。ちなみに、読み込むクラスは文字列なので、
当然のことながらコンパイルによる型チェックとかはしてくれません。
(IntelliJ IDEAでは試していませんが…)
ですが、まあ、Webアプリのプロトタイプを作るときなどは、
こういう機能があると、非常に助かる。
ちょっとしたエンベデッドなWebサーバーを作って、
Ajaxの適当なレスポンスを返すときには非常に便利ですね。
まあ、こんなのを書いていると、ぬこには怒られそうだけど…
0 件のコメント:
コメントを投稿