例如
`
user=> (proxy [java.util.BitSet] []
(flip [bitIndex]
(proxy-super flip bitIndex)))
反射警告,NO_SOURCE_PATH:73:5 - 无法解析方法 flip 的调用(目标类未知)。
`
我相信仅通过向由 proxy 宏发出的 '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 {}>
`