Clojure nos da una manera rápida y fácil para acceder a la plataforma Java. Se puede llamar a cualquier API directamente con:
(System/getProperties)
-> {java.runtime.name=Java(TM) SE Runtime Enviroment
… etc...
Clojure agrega una cantidad de formas sintácticas de llamar métodos Java. Veamos un ejemplo:
// Java
“hello”.getClass().getProtectionDomain()
;Clojure
(.. “hello” getClass getProtectionDomain)
Clojure provee una forma simple para implementar Java interfaces y subclases de Java. También todas las funciones de clojure implementan Callable y Runnable. Esto se podría utilizar para llamar las funciones desde thread.
(.start (new Thread (fn [] (println “Hello” (Thread/currentThread)))))
->Hello #<Thread Thread[Thread-0,5,main]>
Como podemos ver Clojure es claro y simple y se puede llamar a clases java directamente.