Я использую класс Java, который представляет последовательность результатов (что-то вроде вектора Clojure).
Я хотел бы использовать этот класс с типичными функциями последовательности Clojure (т.е. я хочу, чтобы класс вел себя так, как если бы он поддерживал абстракцию последовательности), однако я не могу изменить класс, поэтому не могу сделать он реализует clojure.lang.Seqable
или аналогичный. Кроме того, досадно, что класс не реализует java.util.Collection
или java.lang.Iterable
.
Я вижу несколько вариантов:
- Используйте
iterator-seq
для (существующего) итератора объекта. - Оберните объект в другой класс, который реализует
java.util.Collection
/clojure.lang.Sequable
- Создайте функцию, которая создает вектор или последовательность Clojure, запрашивая Object
Есть ли другие варианты? Каков наилучший подход?
iterator-seq
кажется, что все в порядке, внутри он делает то же самое, что и ваш второй пункт об обертывании объекта - person Ankur   schedule 19.10.2012