如何在clojure中添加类型提示以修复“无法解析ctor”反射警告,即调用构造函数?
以下示例函数使用 Clojure 的 Java 互操作的特殊形式来调用类构造函数,会导致反射警告:
(defn test-reflection-err []
(new java.util.HashMap {}))
该消息内容如下:
Reflection warning, /Users/ethan/Projects/scicloj/tablecloth.time/src/tablecloth/time/index.clj:26:3 - call to java.util.HashMap ctor can't be resolved.
我试过放置类型提示来避免这种情况,但不确定将它们放置在哪里以防止反射错误。有谁知道如何做到这一点?
我试过了:
(defn test-reflection-err []
(^TreeMap new java.util.HashMap {}))
和
(defn test-reflection-err []
(doto ^TreeMap (new java.util.HashMap {})))
回答
您需要向构造函数参数添加提示:
(let [^java.util.Map m {}]
(new java.util.HashMap m))
THE END
二维码