0

メタクラスを使用してインスタンスのメソッドにアクセスしようとしていますが、プロパティが存在しないというエラーが発生します。別のクラスで宣言されたクラスのプロパティにアクセスする方法はありますか。

これは不自然な例です:

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

Groovy のメタクラス方法論にアクセスしdf.ftたり使用したりする方法はありますか?getDf().getFt()

前もって感謝します

4

2 に答える 2