【发布时间】:2012-10-19 01:15:19
【问题描述】:
我正在使用一个表示结果序列的 Java 类(有点像 Clojure 向量)。
我想将这个类与典型的 Clojure 序列函数一起使用(即我想让这个类表现得好像它支持序列抽象)但是我不能更改类所以我无法使其实现clojure.lang.Seqable 或类似的。此外,令人讨厌的是,该类没有实现 java.util.Collection 或 java.lang.Iterable。
我可以看到几个选项:
- 在对象的(现有)迭代器上使用
iterator-seq。 - 将对象包装在另一个实现
java.util.Collection/clojure.lang.Sequable的类中 - 创建一个函数,通过查询对象来构建 Clojure 向量或序列
还有其他选择吗?最好的方法是什么?
【问题讨论】:
-
iterator-seq似乎很好,在内部它与您关于包装对象的第二点相同
标签: java clojure sequence clojure-java-interop