2010-11-27 3 views
5

Je voudrais utiliser la réflexion pour obtenir une méthode d'un objet Java à partir de Clojure. Un des types d'arguments est une primitive Java et je ne sais pas comment les désigner à partir de Clojure. Par exemple, disons que je voulais obtenir le String.valueOf(boolean). Je pense le plus proche serait de faireComment faites-vous référence aux types Java primitifs dans Clojure?

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

mais cela échoue parce que Boolean n'est pas le type primitif lui-même, mais la version en boîte. J'ai essayé boolean, mais cela fait référence à une fonction Clojure intégrée, et bool est indéfini. Comment faire référence à un type Java primitif dans Clojure?

Répondre

10

Vous pouvez vous référer aux types primitifs via la propriété TYPE de leur équivalent encadré. Par exemple:

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