Al momento, ho una libreria Clojure completamente funzionale che viene chiamata da Java.Creazione di una libreria di protocolli e defrecords per l'utilizzo da Java
Il modo in cui faccio questo: ho un file che utilizza gen-class per avvolgere l'intera API come metodi statici di una singola classe e passa i dati in entrata e in uscita sotto forma di IPersistentVector e IPersistentMap.
Ora, tuttavia, sto rifattorizzando la libreria e inserendo le funzionalità dietro vari protocolli.
ho quattro protocolli, immobili chiamarli A, B, C e D. E due defrecords, X e Y. X e Y sia implementare protocolli A, B e C. Mentre Y implementa anche D.
Cosa devo fare per renderli disponibili su Java? Sono automaticamente disponibili come interfacce e classi? O devo ancora fare l'equivalente della classe gen per renderli pubblici?
In caso contrario, qual è l'equivalente della clausola gen: class, dove definisco i tipi Java per gli argomenti dei metodi?
Qualcuno ha un semplice esempio di rendere disponibili protocolli e record su Java?