У меня есть класс Java, который я хотел бы использовать в Clojure. Но я хочу использовать его как карту Clojure. Каковы шаги, необходимые для этого?
Я просмотрел код для IPersistentMap
- должен ли Java-класс реализовать это? Или должен быть какой-то Clojure код, который реализует протокол?
Я знаю, что могу просто написать код сопоставления, чтобы явно преобразовать код из объектов Java в карты, но это решение имеет большое соотношение усилий/вознаграждений. Кроме того, я мог бы столкнуться с такой же ситуацией много раз.
Конкретный пример: у меня есть парсер, написанный на Java. Я хотел бы использовать это для разбора некоторого текста, а затем получить доступ к содержимому анализируемой структуры данных, как если бы он был в Clojure maps:
(def parser (new MyParser))
(let [parse-tree (parser ... parse some text ...)]
((parse-tree :items) "itemid"))