Groovy dynamique de la propriété par objet

À L'Aide De Groovy 1.8. Je suis en train de créer une dynamique de classe définition des propriétés de cache par objet. J'ai fait d'utiliser propertyMissing sans l'ajout de la propriété de l'objet de l'amende juste. Je pense juste que la mise en cache des propriétés serait plus efficace. Droit?

Noter que chaque instance doit avoir ses propres propriétés différentes.

Le code ci-dessous fonctionne très bien:

class C {}
def c = new C()
c.metaClass.prop = "a C property"
println c.prop

def x = new C()
x.prop

sera de sortie:

a C property
groovy.lang.MissingPropertyException: No such property: prop for class: C

Si j'ai besoin de cette problématique:

class A {
    def propertyMissing(String name) {
        if(!this.hasProperty(name)) {
            println "create new propery $name"
            this.metaClass."$name" = "Dyna prop $name"
            println "created new propery $name"
        }
        this.metaClass."$name"
    }
}

a = new A()
println a.p1

Pour A, je reçois autant que "créer une nouvelle propriété", mais la ligne this.metaClass."$name" = "Dyna prop $name" échoue avec: No such property: p1 for class at line 5

Quoi de mal?

InformationsquelleAutor Ayman | 2011-07-04