我在Clojure 1.2中创建了一个协议来处理我自己的Java类,并且对通用的java.lang.Object进行了默认处理.代码看起来像:
(extend-protocol PMyProtocol
my.java.ClassName
(protocol-function [c]
"My Java class result")
java.lang.Object
(protocol-function [c]
"Default object result"))
我应该如何扩展它以对标准Clojure数据结构(特别是地图,向量和序列)进行特殊处理?
最佳答案
所有Clojure的持久数据结构都实现了扩展clojure.lang.PersistentCollection的接口. Clojure的瞬态集合实现了clojure.lang.TransientCollection.您可以将协议扩展到这些,就像将它扩展到类一样(尽管只处理持久性集合可能更有意义).
原文链接:https://www.f2er.com/java/437702.html