1

私はまったく新しいgrailsプロジェクトを作成し、これをブートストラップに入れます。

ExpandoMetaClass.enableGlobally()

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

そして、それは私が期待することを実行します、run-app prints:

1
rofl
1

しかし、私がそれを取り出すと、println "rofl"その2番目のものは印刷されません。roflなしで1を出力するだけです...WTF?

繰り返しますが、これは私には意味がないため、このコードは次のとおりです。

ExpandoMetaClass.enableGlobally()

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

プリント:

1
4

2 に答える 2

0

これは ubuntu のデフォルト設定であり、JVM とは関係ありません。行が同じである場合、コンソールは行を繰り返しません。オフにする方法を思い出したら、この回答を更新します。

于 2012-09-29T18:54:35.700 に答える
0

マイキー、理由が思いつかない。別の環境で試すことはできますか?Groovy バージョン: 1.8.0 JVM: 1.6.0_20、Win7 および Grails 2 BootStrap および Grails コントローラー アクションでこれをすばやく試しましたが、「私の環境では動作する」と言って申し訳ありません。したがって、私が考えることができるのは、使用しているバージョンまたはセットアップ方法に何らかの形で関連していることだけです。これをどのように実行していますか?

于 2012-01-16T22:48:17.247 に答える