欢迎!有关如何使用本站的信息,请参阅 关于 页面。
如果我创建了一个(链接: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 检查中,clojure 打印出
反射警告,resolve_fail/core.clj:6:3 - 在 resolve_fail.Thing 上调用静态方法 hello 无法解析(参数类型:未知,java.lang.String)。
除非我也对 x 进行类型提示。
由 bronsa 评论
我在开发 tools.analyzer 和 hack reflector 的时候看过这个问题无数次,发现似乎没有一种方式可以使这种情况“工作”而又不影响其他情况。