この章ではGroovyの GroovyObject インタフェースを実装したり、 ExpandoMetaClass を使ったり、メソッドやプロパティやコンストラクタを追加できる拡張可能なメタクラスなどのような動的機能をどうやって使うのかを詳述します。
- Using invokeMethod and getProperty
- Using methodMissing and propertyMissing
- Evaluating the MetaClass runtime
- Using ExpandoMetaClass to add behaviour
- Customizing MetaClass for a single instance
- Runtime mixins
コンパイル時のメタプログラミングはJapanese Compile-time Metaprogramming - AST Transformationsを利用しても可能です。
動的メソッド実行
実行時されるまでメソッド名が分からなくてもメソッドを実行することができます。
リストの引数を与えられた場合、メソッド呼び出し時に引数も展開することもできます。
GStringと連携して実行することもできます。
Labels