Comment puis-je référence l'instance GroovyObject des méthodes métaclasse dans Groovy?
Question
Ceci est un exemple de ce que je artificiel veux faire, mais exprime très peu le comportement souhaité. Je veux faire référence à l'instance de l'objet sur lequel l'accès à la propriété est invoquée. J'ai essayé « ceci » d'abord, mais qui fait référence à la classe englobante plutôt que soit le MetaClass ou l'instance String.
String.metaClass.propertyMissing = { String name ->
'I do not exist, but my name is ' + <the String instance> + '.' + $name
}
La solution
Vous pouvez vous référer à l'objet avec « délégué »:
String.metaClass.propertyMissing = { String name ->
"I do not exist, but my name is $delegate.$name"
}
println "a".me
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow