这是我之前关于 Clojure 静态类型的问题的后续。
我浏览了编译器的 Java 源代码,它在几个地方检查 的值*warn-on-reflection*
,但是当我编译以下代码时,我只得到一个运行时错误:
(defn div-2 [^String s] (/ 2 s))
在任何情况下,此代码不应给出编译时警告(它不会)?让编译器对以下代码发出警告有多难:
(defn get-length [^String s] (.length s))
(defn test-get-length [] (get-length 2.0))
谢谢。