(これは一般化された例です)
任意のオブジェクトで呼び出すことができるユーティリティ メソッドを作成したいのですが、次のような署名があります。
class StringMetaData {
Object value
String meta
}
Object.metaClass.withStringMetaData = { meta ->
new StringMetaData(delegate, meta)
}
私のプログラムのどこでも、次のようなことができるという考えで:
def foo = 1.withStringMetaData("bar")
foo.value
これで、値またはfoo.meta
添付された文字列を取得できます。
ローカル コンテキスト内では、オブジェクトでこのメタ メソッドを定義できますが、アプリケーション内でグローバルに使用できるようにしたいのですが、このメタメソッドをどこでも使用できるようにする正しい方法は何ですか?