如果我仅知道现有对象的文字名称,如何调用其方法?
例如:
class Cat {
def bark() {
println "I am a cat."
}
}
class Dog {
def bark() {
println "I am a dog."
}
}
def cat = new Cat()
def dog = new Dog()
def animal = 'cat'
"${animal}".bark() // Error
如下,我只知道动物的名字(也许是猫或狗)。如何使用该对象?
答案 0 :(得分:1)
如果将cat
和dog
定义为字段,则可以使用this
:
this."${animal}".bark()
或
this[ animal ].bark()
答案 1 :(得分:0)
def animals = [
cat: new Cat(),
dog: new Dog(),
]
def name = 'cat'
animals[name].bark()