我正在尝试使用元类访问实例的方法,但我收到该属性不存在的错误。有没有办法访问在另一个类中声明的类的属性。
这是一个人为的例子:
class DogFood {
def ft = 'food!'
def foodType() { ft}
}
class Dog {
def bark() { println "woof!" }
DogFood df = new DogFood()
def ft() { println df.foodType()}
def getDf() {
df
}
}
def doAction( animal, action ) {
animal."$action"()
}
def rex = new Dog()
println rex.df.ft //works
def barkString = "bark"
doAction( rex, barkString ) //works
doAction( rex, "df.ft") //doesn't work
doAction( rex, "getDf().ft") //does not work
有没有办法访问df.ft
或getDf().getFt()
使用 Groovy 的元类方法?
提前致谢