Question

J'ai des problèmes d'utilisation propertyMissing() ensemble avec GroovyShell

J'ai les fichiers

/**
 * @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'"
    }
}

et

/**
 * @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

Quand je cours FooScriptTest.groovy Je m'attends à la sortie

Vous avez essayé de définir la propriété 'foo' à 'bar'

Ceci est la propriété 'foo'

Ce que j'obtiens est:

bar

Semble mon propertyMissing() est remplacé par le par défaut. Comment empêcher cela?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top