1

我制作了一个全新的 grails 项目并将其放入引导程序中:

ExpandoMetaClass.enableGlobally()

Integer.metaClass.precision = {->return 1}
println 3.precision()
println "rofl"
println 15.precision()

它符合我的预期,运行应用程序打印:

1
rofl
1

但是,如果我取出println "rofl"它,它将不会打印第二个。它只打印一个没有 rofl 的 1 ... WTF?

同样,因为这对我没有任何意义,这段代码:

ExpandoMetaClass.enableGlobally()

Integer.metaClass.precision = {->return 1}
println 3.precision()
//println "rofl"
println 15.precision()

印刷:

1
4

2 回答 2

0

米奇,我想不出原因。可以换个环境试试吗?我刚刚在 Groovy 版本:1.8.0 JVM:1.6.0_20、Win7 和 Grails 2 BootStrap 以及 Grails 控制器操作下快速尝试了这个,很抱歉说“它适用于我的”。所以我能想到的只是它与您正在使用的版本或它的设置方式有某种关系。你怎么运行这个?

于 2012-01-16T22:48:17.247 回答
0

这是 ubuntu 默认设置,与 JVM 无关。如果它们相同,控制台将不会重复行。当我记得如何将其关闭时,将更新此答案。

于 2012-09-29T18:54:35.700 回答