Clojure/Java类和协议有一个简单的参考吗?

Dav*_*ood 3 java protocols class clojure extend

我一直在尝试将Clojure的协议扩展到已有的类型,但似乎每当我有一个问题时,"如何将此协议扩展到所有可用的集合?" 或者"我如何将此协议扩展到所有数字(长数,比率,整数,浮点数等)?" 我必须做很多谷歌搜索才能找到答案,即便如此,我也无法总能找到明确的答案.

任何人是否知道常用的实用参考的clojure.lang.Something,java.lang.SomeJavaClass等类和协议?我认为,如果我们有一些资源可以帮助像我这样几乎没有Java经验的Clojurians,那将是有益的.

编辑:在这段代码中,为了让您了解我在寻找什么:

(defprotocol X
  (do-something [this]))

(extend-protocol X
  ?????? <-- 
  (do-something [this] '(implementation goes here)))
Run Code Online (Sandbox Code Playgroud)

是否有一个资源可能有一个Clojure/Java类列表,它可能对扩展协议有用?

Ale*_*ler 5

这里没有直接的答案,但有一些有用的资源:

  • 我发现Stuart Sierra的类图项目对于可视化它依赖的Clojure和Java接口的类结构非常有用.
  • Chouser 在这里有一些较旧的静态图表
  • 如果您通过deftype创建自定义集合,这个脚手架宏可以为您节省大量时间