次のような署名を持つメソッドがあるとします
def myAction (オブジェクト、文字列プロパティ名);
オブジェクトからプロパティ値を取得したいだけで、2つのバージョンを書きました
バージョン 1: getter メソッドを作成し、オブジェクトで呼び出します
original = propertyName
prefix = original.substring(0,1).toUpperCase()
suffix = original.substring(1,original.length())
methodName = new StringBuilder('get').append(prefix).append(suffix).toString()
value = domain.metaClass.invokeMethod(objet,methodName,null)
バージョン 2: GroovyObject が提供する getProperty メソッドを直接使用します
value = objet.getProperty(propertyName)
魔女のほうが性能いいの?
と思います:)