Как ссылаться на экземпляр GroovyObject из методов MetaClass в Groovy? - PullRequest
13 голосов
/ 15 февраля 2009

Это надуманный пример того, что я хочу сделать, но минимально выражает желаемое поведение. Я хочу сослаться на экземпляр объекта, для которого вызывается доступ к свойству. Сначала я попробовал «это», но это относится к классу включения, а не к экземпляру MetaClass или String.

String.metaClass.propertyMissing = { String name ->
    'I do not exist, but my name is ' + <the String instance> + '.' + $name
}

1 Ответ

16 голосов
/ 15 февраля 2009

Вы можете обратиться к объекту с помощью «делегата»:

String.metaClass.propertyMissing = { String name ->
    "I do not exist, but my name is $delegate.$name"
}


println "a".me
...