我试图在clj文件中使用warn-on-reflection.我写的时候:
(set! warn-on-reflection true)
Run Code Online (Sandbox Code Playgroud)
:ns声明后我收到错误:
java.lang.Exception: Unable to resolve symbol: warn-on-reflection in this context
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么?
kod*_*ddo 17
全局变量通常以名称以星号开头和结尾命名.
(set! *warn-on-reflection* true)
Run Code Online (Sandbox Code Playgroud)
我想你是从一个使这样的文字变粗的论坛中复制的.
更新:在leiningen project.clj中添加以下行:
;; Emit warnings on all reflection calls.
:global-vars {*warn-on-reflection* true}
Run Code Online (Sandbox Code Playgroud)
https://github.com/technomancy/leiningen/blob/master/sample.project.clj
ove*_*ink 10
这(set! *warn-on-reflection* true)
可能是要走的路.如果您确实想使用特定于lein的方法来执行此操作,请参阅2.x的一些更新信息:
要在项目定义中设置全局:
(defproject foo ...
:global-vars {*warn-on-reflection* true}
...)
Run Code Online (Sandbox Code Playgroud)
或者只是定期运行lein check
,因为它会在反射时发出警告.