2009-02-15 6 views
12

Este es un ejemplo artificial de lo que quiero hacer, pero expresa mínimamente el comportamiento deseado. Quiero hacer referencia a la instancia del objeto sobre el que se invoca el acceso a la propiedad. Intenté 'esto' primero, pero eso se refiere a la clase adjunta en lugar de a la instancia de MetaClass o de String.¿Cómo hago referencia a la instancia de GroovyObject desde los métodos de MetaClass en Groovy?

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

Respuesta

15

Se puede hacer referencia al objeto con el "delegado":

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


println "a".me 
Cuestiones relacionadas