La conversion de Clojure structures de données en Java collections

Quel est le Clojure-idiomatiques façon de convertir en une structure de données pour une collection Java, en particulier:

  • [] à un java.util.ArrayList
  • {} à un java.util.HashMap
  • #{} à un java.util.HashSet
  • () à un java.util.LinkedList

Est-il un clojure.contrib bibliothèque pour ce faire?

CAS d'UTILISATION: pour faciliter Clojure dans mon organisation, je suis envisage d'écrire un test unitaire suite pour un tout-Java serveur RESTE en Clojure. J'ai écrit une partie de la suite dans les Scala, mais pense que Clojure peut-être mieux, car la macro soutien permettra de réduire beaucoup de code réutilisable (j'ai besoin de tester des dizaines de semblables REPOS appels de service).

Je suis avec EasyMock de se moquer des connexions de base de données (est-il un meilleur moyen?) et mes méthodes fantaisie besoin de retourner java.util.List<java.util.Map<String, Object>> éléments (représentant la ligne de base de données fixe) pour les appelants. Je voudrais passer une [{ "first_name" "Joe" "last_name" "Smith" "date_of_birth" (date "1960-06-13") ... } ...] structure de ma fantaisie et de le convertir à la Java collection de sorte qu'il peut être renvoyé à l'appelant dans le format attendu.

  • Si les méthodes de besoin de retourner java.util.List, alors il n'y a pas besoin de convertir depuis un clojure vecteur est un List. Vous devriez seulement besoin de les convertir si le type est d'une mise en œuvre spécifique de la classe, par exemple ArrayList.
InformationsquelleAutor Ralph | 2010-11-30