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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-22 05:33:34  来源:igfitidea点击:

How to get a list with the Typesafe config library

scalatypesafe

提问by Martin

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

我想在斯卡拉得到像一个配置文件列表something.confTypeSafe

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