Grails:println只在某些时候起作用

时间:2012-01-16 18:28:41

标签: grails groovy metaclass expando println

我制作了一个全新的grails项目,并把它放在bootstrap中:

ExpandoMetaClass.enableGlobally()

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

它符合我的预期,运行app打印:

1
rofl
1

但如果我拿出println "rofl"它就不会打印第二个。它只打印一个1没有rofl ... WTF?

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

ExpandoMetaClass.enableGlobally()

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

打印:

1

2 个答案:

答案 0 :(得分:0)

Mikey,我想不出有什么原因。你能在不同的环境中尝试吗?我只是在Groovy版本下快速尝试了这个:1.8.0 JVM:1.6.0_20,Win7和Grails 2 BootStrap以及Grails Controller操作并且抱歉说“它适用于我的”。所以我能想到的是它与你正在使用的版本或它是如何设置有某种关系。你是怎么跑这个的?

答案 1 :(得分:0)

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