scala 如何使用 Typesafe 配置库获取列表
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/17913215/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to get a list with the Typesafe config library
提问by Martin
I'm trying in Scala to get a list from a config file like something.confwith TypeSafe.
我想在斯卡拉得到像一个配置文件列表something.conf有TypeSafe。
In something.confI set the parameter:
在something.conf我设置参数:
mylist=["AA","BB"]
and in my Scala code I do:
在我的 Scala 代码中,我这样做:
val myList = modifyConfig.getStringList("mylist")
Simple configuration parameters works fine but could somebody give me an example of how to extract a list?
简单的配置参数工作正常,但有人能给我一个如何提取列表的例子吗?
回答by 0__
As @ghik notes, the Typesafe Config library is Javabased, so you get a java.util.List[String]instead of a scala.List[String]. So either you make a conversion to a scala.List:
正如@ghik 所指出的,Typesafe Config 库是基于Java的,因此您将获得一个java.util.List[String]而不是scala.List[String]. 因此,要么您转换为 a scala.List:
import collection.JavaConversions._
val myList = modifyConfig.getStringList("mylist").toList
Or (probably less awkward) you look for a Scala library. The tools wikilinks at least to these maintained libraries:
或者(可能不那么尴尬)您寻找 Scala 库。该工具维基至少要维持这些链接库:
(Disclaimer: I don't use these, so you will have to check that they support your types and format)
(免责声明:我不使用这些,因此您必须检查它们是否支持您的类型和格式)
回答by Leszek Grucha?a
For the record, since Scala 2.12 JavaConversionsare deprecated so you can:
作为记录,由于 Scala 2.12JavaConversions已被弃用,因此您可以:
import collection.JavaConverters._
val myList: List[String] = modifyConfig.getStringList("mylist").asScala.toList
回答by andr83
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:
您可以尝试我的 scala 包装器https://github.com/andr83/scalaconfig- 它支持直接从配置对象读取本机 scala 类型。在您的情况下,它将看起来:
val myList = modifyConfig.as[List[String]]("mylist")
回答by Xavier Guihot
Starting Scala 2.13, the standard library provides Java to Scala implicit list conversions via scala.jdk.CollectionConverters:
首先Scala 2.13,标准库通过scala.jdk.CollectionConverters以下方式提供 Java 到 Scala 的隐式列表转换:
import scala.jdk.CollectionConverters._
val myList: List[String] = conf.getStringList("mylist").asScala.toList
This replaces deprecated packages scala.collection.JavaConverters/JavaConversions.
这将替换已弃用的包scala.collection.JavaConverters/JavaConversions。

