Я хотел бы написать эквивалент этого кода Python в Groovy:
>>> class A(object): pass
>>> a = A()
>>> name = os.name
>>> setattr(a, name, "some text")
>>> a
<__main__.A object at 0x10aad6a10>
>>> a.posix
'value'
Я пробовал это:
class TmpClass {}
def tmp = new TmpClass()
String name = getNameFromSomeWhere()
tmp.metaClass.setAttribute(tmp, name, "value")
Но выдает исключение, говоря, что атрибут не найден.
Редактировать: я обновил код, чтобы отразить тот факт, что имя свойства / атрибута не является литералом.