[英]scala: how to iterate typesafe config list
我正在嘗試遍歷配置列表,它給了我一些錯誤。 不知道我做錯了什么。
配置
test{
header = [
{
name="col0"
vale="aaa"
}
{
name="col1"
value="bbb"
}
]
}
代碼
val headers:ConfigList = ConfigFactory.load().getList("test.header")
headers.forEach{header:Config =>
val name = header.getString("name")
println(name)
}
錯誤
Error:(32, 35) type mismatch;
found : com.typesafe.config.Config => Unit
required: java.util.function.Consumer[_ >: com.typesafe.config.ConfigValue]
headers.forEach{header:Config =>
正如@Luis 所說,Scala 2.11.x 中的函數不會編譯為 Java 函數。 並且由於它們不是 Java 函數,因此無法通過 SAM 將它們轉換為Consumer
。
因此,您需要明確提供Cosumer
。
此外,使用getList("...")
你會得到一個ConfigList
,它可以用來迭代ConfigValue
元素而不是Config
。
headers.forEach(new Consumer<ConfigValue> {
override def accept(configValue: ConfigValue): Unit = {
// Since you have ConfigValue... do whatever you want with it
println(configValue.render())
}
})
你真正想要使用的是getConfigList(...)
val headers = ConfigFactory.load().getConfigList("test.header")
headers.forEach(new Consumer<Config> {
override def accept(config: Config): Unit = {
println(config.getString("name"))
}
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.