欢迎!请参阅 关于 页面,了解更多关于其工作方式的信息。
如果我创建了一个链接(https://github.com/MichaelBlume/resolve-fail/blob/master/src/java/resolve_fail/Thing.java 文本:一个类),包含两个方法,一个接受(String, String)参数,另一个接受(String, Number)参数,然后编写一个函数
(defn foo [x ^String y] (Thing/hello x y))
看上去很明显,我试图调用第一个方法,而不是第二个。但在 lein check 过程中,Clojure 输出了:
反射警告,resolve_fail/core.clj:6:3 - resolve_fail.Thing 上的静态方法 hello 调用无法解析(参数类型:未知,java.lang.String)。
除非我也给 x 添加类型提示。
评论者:bronsa
在开发 tools.analyzer 以及修改 reflector 的过程中,我无数次地查看过这个问题,发现似乎没有一种方式可以使这类“工作”而不破坏其他情况。