例如
`
user=> (proxy [java.util.BitSet] []
(flip [bitIndex]
(proxy-super flip bitIndex)))
反射警告,NO_SOURCE_PATH:73:5 - 无法解析方法 flip 的调用(目标类未知)。
`
我认为只需向代理宏生成的 'this' 符号添加类型提示元数据即可修复此问题。我尚未尝试此更改,但此宏似乎表明它应该有效
`
(defmacro proxy-super-cls [cls meth & args]
(let [thissym (with-meta (gensym) {:tag cls})]
`(let [~thissym ~'this]
(proxy-call-with-super (fn [] (. ~thissym ~meth ~@args)) ~thissym ~(name meth))
)))
;;;;;;;;;;;;;;;;;;;;;;
user=> (proxy [java.util.BitSet] []
(flip [bitIndex]
(proxy-super-cls java.util.BitSet flip bitIndex)))
<BitSet$ff19274a {}>
`