Как я могу динамически добавить поле в класс Java с помощью Groovy? - PullRequest
3 голосов
/ 03 августа 2009

В Ruby я могу добавить переменные экземпляра в класс, открыв его и выполнив что-то вроде этого:


class Whatever
   def add_x
     @x = 20
   end
end

и это добавит мне переменную экземпляра по имени x. Как я могу сделать то же самое в Groovy?

1 Ответ

3 голосов
/ 04 августа 2009

Вы можете использовать метакласс Groovy:

class Foo { String bar }
f = new Foo(bar:"one")
f.metaClass.spam = "two"
f.spam == "two" // returns true
f.spam = "eggs" // Change property value
f.spam == "eggs" //returns true
...