Groovyで既存のクラス(java.io.File)にプロパティを追加
既存のクラスにプロパティを追加するには、metaClass.defineメソッドを使用すればよい。
以下の例では、 java.lang.Object
にメソッドを追加している。
#!/usr/bin/env groovy
Object.metaClass.define {
testprop = null
}
def x = new Object()
def y = new Object()
x.testprop = "aaa"
assert x.testprop == "aaa"
y.testprop = "bbb"
assert x.testprop == "aaa"
assert y.testprop == "bbb"
def z = new Object(testprop: "ccc")
assert z.testprop == "ccc"
java.io.File
クラスにプロパティを追加するにはどうしたらよいか分からなかったのでメモ。
これで、 Rails の黒魔術のようにJavaの組み込みクラスにメソッドを追加することができる。java.lang.String
にもメソッド追加できる。
ディスカッション
コメント一覧
まだ、コメントがありません