[英]How to get a list with the Typesafe config library
I'm trying in Scala to get a list from a config file like something.conf
with TypeSafe
.我想在斯卡拉从像一个配置文件获取列表
something.conf
与TypeSafe
。
In something.conf
I 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?简单的配置参数工作正常,但有人能给我一个如何提取列表的例子吗?
As @ghik notes, the Typesafe Config library is Java based, so you get a java.util.List[String]
instead of a scala.List[String]
.正如@ghik 所指出的,Typesafe Config 库是基于Java的,因此您将获得
java.util.List[String]
而不是scala.List[String]
。 So either you make a conversion to a scala.List
:所以要么转换为
scala.List
:
import collection.JavaConversions._
val myList = modifyConfig.getStringList("mylist").toList
Or (probably less awkward) you look for a Scala library.或者(可能不那么尴尬)您寻找 Scala 库。 The tools wiki links at least to these maintained libraries:
工具 wiki至少链接到这些维护的库:
(Disclaimer: I don't use these, so you will have to check that they support your types and format) (免责声明:我不使用这些,因此您必须检查它们是否支持您的类型和格式)
For the record, since Scala 2.12 JavaConversions
are deprecated so you can:作为记录,由于 Scala 2.12
JavaConversions
已弃用,因此您可以:
import collection.JavaConverters._
val myList: List[String] = modifyConfig.getStringList("mylist").asScala.toList
You can try my scala wrapper https://github.com/andr83/scalaconfig - it supports reading native scala types directly from config object.您可以尝试我的 scala 包装器https://github.com/andr83/scalaconfig - 它支持直接从配置对象读取本机 scala 类型。 In your case it will look:
在您的情况下,它将看起来:
val myList = modifyConfig.as[List[String]]("mylist")
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
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.