【问题标题】:How can I add a field dynamically to a Java class using Groovy?如何使用 Groovy 将字段动态添加到 Java 类?
【发布时间】:2010-11-16 11:53:24
【问题描述】:

在 Ruby 中,我可以通过打开一个类来将实例变量添加到一个类中,然后执行以下操作:


class Whatever
   def add_x
     @x = 20
   end
end

这将为我添加一个名为 x 的实例变量。我怎样才能在 Groovy 中做同样的事情?

【问题讨论】:

    标签: ruby groovy metaprogramming language-features


    【解决方案1】:

    你可以使用 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
    

    【讨论】:

    • 注意:这只会将变量添加到类的特定实例中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 2010-10-13
    • 1970-01-01
    • 2018-04-23
    • 2019-03-03
    相关资源
    最近更新 更多