2009-02-15 4 views
12

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

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

ответ

15

Вы можете обратиться к объекту с "делегат":

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


println "a".me