На данный момент у меня есть полностью функциональная библиотека Clojure, которая вызывается из Java.
То, как я это делаю: у меня есть файл, который использует gen-class для обертывания всего API как статических методов одного класса и передает данные внутрь и наружу в форме IPersistentVector и IPersistentMap.
Однако сейчас я занимаюсь рефакторингом библиотеки и добавляю функциональность в различные протоколы.
У меня есть четыре протокола, назовем их A, B, C и D. И две defrecords, X и Y. X и Y реализуют протоколы A, B и C. В то время как Y также реализует D.
Что мне нужно сделать, чтобы сделать их доступными для Java? Доступны ли они автоматически как интерфейсы и классы? Или мне еще нужно сделать аналог gen-class, чтобы сделать их общедоступными?
Если нет, то что является эквивалентом предложения gen-class: methods, в котором я определяю типы Java для аргументов методов?
Есть ли у кого-нибудь простой пример предоставления доступа к протоколам и записям для Java?