如何从Groovy中的MetaClass方法引用GroovyObject实例?

Phi*_*hil 13 groovy metaclass

这是我想要做的一个人为的例子,但最低限度地表达了所需的行为.我想引用调用属性访问的对象的实例.我首先尝试'this',但是它引用了封闭类,而不是MetaClass或String实例.

String.metaClass.propertyMissing = { String name ->
    'I do not exist, but my name is ' + <the String instance> + '.' + $name
}
Run Code Online (Sandbox Code Playgroud)

cha*_*wit 17

您可以使用"delegate"引用该对象:

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


println "a".me
Run Code Online (Sandbox Code Playgroud)