Как сослаться на экземпляр GroovyObject из методов MetaClass в Groovy?

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

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

person Phil    schedule 15.02.2009    source источник


Ответы (1)


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

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


println "a".me
person chanwit    schedule 15.02.2009