我在哪里可以在clj文件中指定warn-on-reflection?

时间:2010-12-17 20:02:13

标签: clojure

我正在尝试在clj文件中使用warn-on-reflection。我写的时候:

(set! warn-on-reflection true)

:ns声明后我收到错误:

 java.lang.Exception: Unable to resolve symbol: warn-on-reflection in this context 

有谁知道为什么?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:9)

(set! *warn-on-reflection* true)可能是要走的路。如果您确实想使用特定于lein的方法来执行此操作,请参阅2.x的一些更新信息:

在项目定义中设置全局:

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

或者只是定期运行lein check,因为它会在反射时发出警告。