2010-11-27 10 views
5

Me gustaría usar la reflexión para obtener un método de un objeto Java de Clojure. Uno de los tipos de argumentos es una primitiva Java y no sé cómo referirme a ellos desde Clojure.¿Cómo se refiere a los tipos primitivos de Java en Clojure?

Por ejemplo, digamos que quería obtener String.valueOf(boolean). Mi conjetura más cercana sería hacer

(.getDeclaredMethod String "valueOf" (into-array [Boolean])) 

pero esto falla porque Boolean no es el tipo primitivo en sí, pero la versión en caja. Intenté boolean, pero eso se refiere a una función Clojure incorporada, y bool no está definido.

¿Cómo me refiero a un tipo primitivo de Java en Clojure?

Respuesta

10

Puede consultar los tipos primitivos a través de la propiedad TYPE de su equivalente encuadrado. Por ejemplo:

user=> (.getDeclaredMethod String "valueOf" (into-array [Boolean/TYPE])) 
#<Method public static java.lang.String java.lang.String.valueOf(boolean)> 
Cuestiones relacionadas