groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Schalk Cronjé <ysb...@gmail.com>
Subject Dynamic adding properties to class
Date Tue, 26 May 2015 15:20:48 GMT
This should be straight-forward, but it is failing for me (at least on 
2.3x and 2.4.x). What am I doing wrong?

Here is some code sufficiently distilled.

class A {
   void addSomeProp( String name,String key, def value ) {
     if(metaClass.getMetaProperty(name)==null) {
       metaClass."${name}" = [:]
     }
     metaClass."${name}"[key]=value.toString()
   }
}

A a = new A()
a.addSomeProp( 'info','version',3)  // Fails with: No such property: 
info for class: groovy.lang.MetaClassImpl

The idea is to add a map (of name) if it does not exist, and then add 
items into the map.

-- 
Schalk W. Cronjé
Twitter / Ello / Toeter : @ysb33r


Mime
View raw message