所以我有这样一段代码
(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))