所以,我写有如下代码
(defn- nanos->ms [elapsed-time]
(double (/ elapsed-time 1000000)))
即使在 (set! *warn-on-reflection* true)
的情况下,它也可以很好地编译。
但是,当我使用 tools.namespace.repl/refresh
时,我会收到反射警告
Reflection warning: file:....metrics.clj:6:3 - call to static method doubleCast on clojure.lang.RT cannot be resolved
我的假设是,我触发了 double
的内联版本,并且它没有类型提示。
这 correct 是否,以及如果有,我该如何移除这个反射警告?
(defn double
"Coerce to double"
{:inline (fn [x] `(. clojure.lang.RT (doubleCast ~x)))
:added "1.0"}
[^Number x] (clojure.lang.RT/doubleCast x))