Groovy - Meta Programming - Expando Class

Expando ex = new Expando()
ex.name = 'Fido'
ex.speak = { println "$name says Woof!" }
ex.speak()

class Cat {}
Cat.metaClass.name = 'Garfield'
Cat.metaClass.says = 'wants lasagna'
Cat.metaClass.speak { println "$name $says" }
Cat c = new Cat()
c.speak()

c.name = 'Fluffy'
c.says = 'meow'
c.speak()
​

Comments

Popular posts from this blog

அவன் ஏன் கூலியானான்?

தட்டு வண்டியில் காளிக்கோயில் - சிறுகதை

Groovy Tuples