2010-12-17 5 views

答えて

16

グローバル変数は、通常、アスタリスクで始まり、アスタリスクで終わる名前で命名されます。

(set! *warn-on-reflection* true) 

このようなテキストを太字にするフォーラムからコピーしたと思います。


更新:あなたのLeiningenをするproject.cljにこれらの行を追加します。

;; Emit warnings on all reflection calls. 
    :global-vars {*warn-on-reflection* true} 

https://github.com/technomancy/leiningen/blob/master/sample.project.clj

+3

この行をcljファイルで使用すると、「java.lang.IllegalStateException:ルートバインディングを変更できません:* warn-on-reflection *とセット」のエラーが発生します。 – Zubair

+0

_warn-on-reflection_ in project.cljは廃止されました([link](https://github.com/technomancy/leiningen/blob/master/leiningen-core/src/leiningen/core/eval.clj) - 行335) – gadon

9

(set! *warn-on-reflection* true)はおそらく行く方法です。

は、プロジェクトの定義でグローバルに設定するには:

(defproject foo ... 
    :global-vars {*warn-on-reflection* true} 
    ...) 

それとも定期的にlein checkを実行して、あなたがこれを行うにはレイン固有のメソッドを使用したい場合は、ここで2.xのためのいくつかの更新情報ですそれは反射について警告するので。

+0

+1の 'リインチェック '。 '* warn-on-reflection *'はエラーを出さなかったが、プロファイラは 'getMethods'を呼び出すのに費やされた時間は10%だったと言っていた。 'lein check'は私のメインの個人図書館(whoops)のランダムヘルパーであることを示しました。 – Carcigenicate

関連する問題