質問

私は使用に問題があります propertyMissing() 一緒に GroovyShell

ファイルがあります

/**
 * @file FooScript.groovy
 */
abstract class FooScript extends Script {

    def propertyMissing(String name) {
        "This is the property '$name'"
    }

    def propertyMissing(String name, value) {
        println "You tried to set property '$name' to '$value'"
    }
}

/**
 * @file FooScriptTest.groovy
 */

import org.codehaus.groovy.control.*


def fooScript = """\
                foo = 'bar'
                println foo"""

def conf = new CompilerConfiguration()
conf.setScriptBaseClass("FooScript")
def sh = new GroovyShell(conf)

sh.evaluate fooScript

走るとき FooScriptTest.groovy 出力を期待しています

あなたはプロパティ「foo」を「バー」に設定しようとしました

これはプロパティ「foo」です

私が得るのは:

バー

私のようです propertyMissing() デフォルトのものによってオーバーライドされます。これを防ぐにはどうすればよいですか?

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top