【发布时间】:2011-05-23 15:31:04
【问题描述】:
我只是在玩 Groovy 中的元类编程。但是突然间我遇到了一个我无法工作的小问题......
这是简单的脚本:
// define simple closure
def printValueClosure = {
println "The value is: '$delegate'"
}
String.metaClass.printValueClosure = printValueClosure
// works fine
'variable A'.printValueClosure()
// define as method
def printValueMethod(String s){
println "The value is: '$s'"
}
// how to do this!?
String.metaClass.printValueMethod = this.&printValueMethod(delegate)
'variable B'.printValueMethod()
是否可以使用方法但将第一个参数设置为调用对象?使用委托似乎不起作用......不引用调用者的方法的分配没有问题。柯里化在这里有用吗?
谢谢, 英戈
【问题讨论】:
标签: methods groovy metaprogramming metaclass