如何获取Typesafe配置库的列表

时间:2013-07-28 21:44:44

标签: scala typesafe

我正在尝试使用Scala从something.confTypeSafe这样的配置文件中获取列表。

something.conf中设置参数:

mylist=["AA","BB"]

在我的Scala代码中我做了:

val myList = modifyConfig.getStringList("mylist")

简单的配置参数工作正常,但有人可以给我一个如何提取列表的例子吗?

4 个答案:

答案 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