gpt4 book ai didi

java - 如何在 Typesafe Config 中获取列表列表

转载 作者:行者123 更新时间:2023-11-30 07:53:42 26 4
gpt4 key购买 nike

我有一个typesafe config与列表的列表。基本上我想做的是提取多 map 。

myconfig {
values = [
[ 'key1', 'value1'],
[ 'key1', 'value2'],
[ 'key2', 'value2'],
[ 'key2', 'value3'],
]

我必须使用的解决方法:

myconfig {
values = {
key1 : [ 'value1' , 'value2' ]
key2 : [ 'value2' , 'value3' ]
}
}

有没有一种很好的方法来提取原始列表列表?所有函数都需要一个路径,因此一旦我提取“值”,似乎就没有直接的方法来访问内部列表。

最佳答案

您可以在 Config 对象上使用 getList(String path) 来获取 ConfigList 对象。

Java:

config.getList("path.to.keys").stream()
.map(configValue -> (ArrayList) configValue.unwrapped())
.collect(Collectors.toList())

ConfigList 包含 ConfigValue 实例。在这种情况下,类型安全人员在内部将列表表示为 ArrayList,因此您必须在解包 ConfigValue 对象时进行强制转换。

上面的代码片段返回一个列表的列表。如果您想展平列表,请使用 flatMap 而不是 Map 并在 lambda 中返回流。

编辑

这是等效的 Scala:

  import scala.collection.JavaConversions._
val keys: Map[String, String] = config.getList("path.to.keys")
.map(configValue =>
configValue.unwrapped().asInstanceOf[ArrayList[String]]
)
.foldLeft(Map[String, String]())( (map, list) =>
map + (list(0) -> list(1))
)

关于java - 如何在 Typesafe Config 中获取列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44560440/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com