我开发了一个类,它有一些方法来增加整数,它主要让我这样做:
def total = 100.dollars + 50.euros
现在我必须扩展integer.metaclass,这样做:
Integer.metaClass.getDollars = {->
Money.Dollar(delegate)
}
我试着把它放在文件的底部,在money类声明之前,但是编译器说一个名为money的类已经存在,我知道为什么会发生这种情况(因为groovy用一个空的静态void main创建一个文件名为的类来运行这段代码)。
我还尝试在类中使用静态块,如下所示:
static {
Integer.metaClass.getDollars = {->
Money.Dollar(delegate)
}
}
这两个都不起作用。
第三种解决方案是更改文件名(如moneyClass.groovy)并保留类名(class money),但这看起来有点奇怪。
还有什么我能做的吗?谢谢。