我想在clojure中定义一个java接口 - (以及实现它) - 我理解实现可以通过代理和gen-class完成,但总是假设接口已经定义.
您可以使用clojure.core/definterface和生成Java接口clojure.core/gen-interface.(definterface扩展为致电gen-interface.)
(ns demo.api)
(definterface Store
(^demo.api.Store buy [])
(^demo.api.Store buy [^int q])
(^demo.api.Store sell [])
(^int getQty []))
;; or
(gen-interface
:name demo.api.Store
:methods [[buy [] demo.api.Store]
[buy [int] demo.api.Store]
[sell [] demo.api.Store]
[getQty [] int]])
Run Code Online (Sandbox Code Playgroud)
从此博客文章中提取.
如果你想要一个"接口",在一般意义上,那么看看Clojure协议.