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