2012-01-16 40 views
0

我提出一個全新的Grails項目,並把這個自舉:的Grails:的println只有作​​品有時什麼

ExpandoMetaClass.enableGlobally() 

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

而且它做什麼,我希望,運行應用程序的打印:

1 
rofl 
1 

但是,如果我拿出println "rofl"它不會打印第二個。它只打印一個1沒有rofl ... WTF?

再次,becasue這沒有任何意義,我,這個代碼:

ExpandoMetaClass.enableGlobally() 

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

打印:

1 

回答

0

米奇,我想不出一個原因。你可以嘗試在不同的環境?我剛剛在Groovy Version:1.8.0 JVM:1.6.0_20,Win7和Grails 2 BootStrap以及Grails Controller操作中嘗試了這一點,並很抱歉地說「它在我的工作中」。所以我能想到的是它與你正在使用的版本或如何設置有關。你如何運行?

+0

STS 2.8.1 Ubuntu 11.10上的Grails 1.3.7。也許它的時間來嘗試Grails 2 .... – Mikey 2012-01-17 01:40:44

+0

你用什麼控制器?我擁有bootstrap中的所有代碼。我也升級了我的Grails和Groovy。還是行不通。 – Mikey 2012-01-17 01:56:34

+0

剛剛在控制器中嘗試了它,但我嘗試了Bootstrap。我不確定在STS上,你是從STS運行還是隻是命令行或交互式運行?我所能想到的是從不同的地方嘗試,但我猜這就是你在過去幾個小時試圖做的。 – Steve 2012-01-17 04:43:47

0

這是一個ubuntu默認設置,與JVM無關。如果它們相同,控制檯將不會重複行。當我記得如何關閉它時,會更新這個答案。

相關問題