Quel est le moyen Clojure-idiomatiques pour convertir une structure de données à une collection Java, plus précisément:Conversion des structures de données Clojure aux collections Java
[]
à unjava.util.ArrayList
{}
à unjava.util.HashMap
#{}
à un()
à un
Existe-t-il une bibliothèque clojure.contrib pour cela? Pour aider Clojure dans mon organisation, j'envisage d'écrire une suite de tests unitaires pour un serveur REST Java dans Clojure. J'ai écrit une partie de la suite dans Scala, mais je pense que Clojure pourrait être meilleur parce que le support de la macro réduira beaucoup le code standard (j'ai besoin de tester des douzaines d'appels de service REST similaires). J'utilise EasyMock pour simuler les connexions à la base de données (existe-t-il un meilleur moyen?) Et mes méthodes simulées doivent renvoyer java.util.List<java.util.Map<String, Object>>
éléments (représentant des ensembles de lignes de base de données) aux appelants. Je passerais dans une structure [{ "first_name" "Joe" "last_name" "Smith" "date_of_birth" (date "1960-06-13") ... } ...]
à ma maquette et la convertirais à la collection Java requise afin qu'elle puisse être retournée à l'appelant dans le format attendu.
Si les méthodes doivent revenir 'java.util.List', alors il n'y a pas besoin de convertir depuis un clojure vector * est un * 'List'. Vous devez uniquement convertir si le type requis est d'une classe d'implémentation spécifique, par ex. 'ArrayList'. –