我开发了一个类,它有一些增强整数的方法,它主要让我这样做:
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)并保留类名(类 Money),但这似乎有点奇怪。
还有什么我可以做的吗?谢谢。