我正在尝试在clj文件中使用warn-on-reflection。我写的时候:
(set! warn-on-reflection true)
:ns声明后我收到错误:
java.lang.Exception: Unable to resolve symbol: warn-on-reflection in this context
有谁知道为什么?
答案 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
,因为它会在反射时发出警告。