2009-02-15 15 views
12

Questo è un esempio forzato di ciò che voglio fare, ma esprime in minima parte il comportamento desiderato. Voglio fare riferimento all'istanza dell'oggetto su cui viene richiamato l'accesso alla proprietà. Ho provato 'this' prima, ma questo si riferisce alla classe che include piuttosto che alla MetaClass o all'istanza di String.Come faccio a fare riferimento all'istanza GroovyObject dai metodi MetaClass in Groovy?

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

risposta

15

È possibile fare riferimento all'oggetto con "delegato":

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


println "a".me 
Problemi correlati