如何在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))


以上是如何在clojure中添加类型提示以修复“无法解析ctor”反射警告,即调用构造函数?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>