クラスメソッド呼び出し中に別の関数の結果を動的に評価しようとしています。しかし、Evalの範囲を持ち、問題を提起する。GroovyでEvalしようとするとMissingMethodExceptionが発生する
class A {
private String a
public A() {
a = 5
}
public whatIsA() {
return a
}
public func() {
return "\\${whatIsA()}"
}
public test() {
return Eval.me("\"\${func()}\"")
}
}
def a = new A()
a.test()
Exception thrown: groovy.lang.MissingMethodException: No signature of method: Script1.func() is applicable for argument types:() values: {}
groovy.lang.MissingMethodException: No signature of method: Script1.func() is applicable for argument types:() values: {}
at Script1.run(Script1.groovy:1)
at A.test(Script7:17)
at Script7.run(Script7:22)
どのようにしてAクラスのインスタンスのスコープをEvalスクリプトに渡すことができますか?私はそれが現在の形で可能だとは思わない
eval/evalの代わりにEval.meを使用すると、うまくいきました。ありがとう! – frmdstryr