web-dev-qa-db-fra.com

Comment obtenir une liste avec la bibliothèque de configuration Typesafe

J'essaie dans Scala pour obtenir une liste à partir d'un fichier de configuration comme something.conf avec TypeSafe.

Dans something.conf J'ai défini le paramètre:

mylist=["AA","BB"]

et dans mon Scala code que je fais:

val myList = modifyConfig.getStringList("mylist")

Les paramètres de configuration simples fonctionnent bien, mais quelqu'un pourrait-il me donner un exemple de la façon d'extraire une liste?

30
Martin

Comme le note @ghik, la bibliothèque Typesafe Config est basée sur Java , donc vous obtenez un Java.util.List[String] au lieu d'un scala.List[String]. Donc, soit vous effectuez une conversion en scala.List:

import collection.JavaConversions._
val myList = modifyConfig.getStringList("mylist").toList

Ou (probablement moins gênant) vous recherchez une bibliothèque Scala. Le wiki des outils relie au moins à ces bibliothèques maintenues:

(Avertissement: je ne les utilise pas, vous devrez donc vérifier qu'ils prennent en charge vos types et votre format)

33
0__

Pour mémoire, puisque Scala 2.12 JavaConversions sont obsolètes, vous pouvez donc:

import collection.JavaConverters._
val myList: List[String] = modifyConfig.getStringList("mylist").asScala.toList
27
Leszek Gruchała

Vous pouvez essayer mon scala wrapper https://github.com/andr83/scalaconfig - il prend en charge la lecture native scala types directement à partir de l'objet de configuration. Dans votre cas, il ressemblera à:

val myList = modifyConfig.as[List[String]]("mylist")
2
andr83