所以我有这样一段代码
(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
,而该版本未进行类型提示。
这是否正确?如果是的话,我该如何移除这个反射警告?
(defn double
"Coerce to double"
{:inline (fn [x] `(. clojure.lang.RT (doubleCast ~x)))
:added "1.0"}
[^Number x] (clojure.lang.RT/doubleCast x))