我正在尝试使用Scala从something.conf
和TypeSafe
这样的配置文件中获取列表。
在something.conf
中设置参数:
mylist=["AA","BB"]
在我的Scala代码中我做了:
val myList = modifyConfig.getStringList("mylist")
简单的配置参数工作正常,但有人可以给我一个如何提取列表的例子吗?
答案 0 :(得分:33)
正如@ghik所说,Typesafe配置库基于 Java ,因此您得到的是java.util.List[String]
而不是scala.List[String]
。因此,要么转换为scala.List
:
import collection.JavaConversions._
val myList = modifyConfig.getStringList("mylist").toList
或者(可能不那么尴尬)你找一个Scala库。 tools wiki至少链接到这些维护的库:
(免责声明:我不使用这些,所以你必须检查它们是否支持你的类型和格式)
答案 1 :(得分:25)
对于记录,由于Scala 2.12 import collection.JavaConverters._
val myList: List[String] = modifyConfig.getStringList("mylist").asScala.toList
已弃用,因此您可以:
sharer.php
答案 2 :(得分:2)
您可以尝试我的scala包装器https://github.com/andr83/scalaconfig - 它支持直接从配置对象读取本机scala类型。在你的情况下,它将看起来:
val myList = modifyConfig.as[List[String]]("mylist")
答案 3 :(得分:0)
从Scala 2.13
开始,标准库通过scala.jdk.CollectionConverters
提供Java到Scala隐式列表的转换:
import scala.jdk.CollectionConverters._
val myList: List[String] = conf.getStringList("mylist").asScala.toList
这将替换已弃用的软件包scala.collection.JavaConverters/JavaConversions
。