How to get a list with the Typesafe config library

我是研究僧i 提交于 2019-12-18 11:41:30

问题


I'm trying in Scala to get a list from a config file like something.conf with TypeSafe.

In something.conf I set the parameter:

mylist=["AA","BB"]

and in my Scala code I do:

val myList = modifyConfig.getStringList("mylist")

Simple configuration parameters works fine but could somebody give me an example of how to extract a list?


回答1:


As @ghik notes, the Typesafe Config library is Java based, so you get a java.util.List[String] instead of a scala.List[String]. So either you make a conversion to a scala.List:

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

Or (probably less awkward) you look for a Scala library. The tools wiki links at least to these maintained libraries:

  • Configrity
  • Bee Config

(Disclaimer: I don't use these, so you will have to check that they support your types and format)




回答2:


For the record, since Scala 2.12 JavaConversions are deprecated so you can:

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



回答3:


You can try my scala wrapper https://github.com/andr83/scalaconfig - it supports reading native scala types directly from config object. In your case it will look:

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



回答4:


Starting Scala 2.13, the standard library provides Java to Scala implicit list conversions via scala.jdk.CollectionConverters:

import scala.jdk.CollectionConverters._

val myList: List[String] = conf.getStringList("mylist").asScala.toList

This replaces deprecated packages scala.collection.JavaConverters/JavaConversions.



来源:https://stackoverflow.com/questions/17913215/how-to-get-a-list-with-the-typesafe-config-library

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!