【发布时间】:2015-01-26 01:54:38
【问题描述】:
我有这个 groovy 类:
class Car {
int speed = 0
}
我想使用元编程来引入一个新属性“颜色”,并为 Car 对象的实例提供 setColor 方法,如下所示:
def c = new Car()
c.metaClass.setProperty("color", "red")
c.metaClass.setColor = {
def newColor-> "color switched from $existingColor to $newColor
}
我的最终目标是当我打电话时:
c.color("yellow")
打印出来:
color switched from red to yellow"
我已经让 c.color 部分与我上面的代码一起工作,但不是第二部分 (setColor)。
有人可以帮我完成这个,或者告诉我这是否可能吗?
谢谢。
【问题讨论】:
标签: groovy closures metaprogramming