因此,我有这样的代码
(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))