在Groovy中覆盖Number的asBoolean

时间:2011-05-19 05:04:06

标签: groovy

有什么方法可以在Groovy中为核心类重新定义asBoolean?我试过了

Number.metaClass.asBoolean = {false}

虽然它适用于非Groovy类,但我找不到如何为Number或任何其他预定义类创建相同的技巧。

2 个答案:

答案 0 :(得分:1)

我认为你错过了->。这对我有用

Number.metaClass.asBoolean = {-> false}
assert !2.asBoolean()  // Normally 2 evaluates to true

答案 1 :(得分:1)

我可以在GroovyConsole中执行脚本时重现您的问题。但是,当在命令行上作为.groovy文件执行时,metaClass更改将按预期工作。