我有一个案例类,如下所示:
case class MyConfig(arg1:String, extraArgs:Map[String,String])
我希望以下内容可以从 HOCON 配置中解析
{
arg1 = 'hello world'
}
但是,此失败extraArgs
是因为未定义。我可以extraArgs
在我的案例类中设置为可选,但这将是多余的。有没有办法指示 PureConfig 将缺少的字段解析为空集合?
我有一个案例类,如下所示:
case class MyConfig(arg1:String, extraArgs:Map[String,String])
我希望以下内容可以从 HOCON 配置中解析
{
arg1 = 'hello world'
}
但是,此失败extraArgs
是因为未定义。我可以extraArgs
在我的案例类中设置为可选,但这将是多余的。有没有办法指示 PureConfig 将缺少的字段解析为空集合?
正如@LuisMiguelMejíaSuárez 在评论中建议的那样,您应该添加一个默认参数:
import pureconfig._
import pureconfig.generic.auto._
import com.typesafe.config.ConfigFactory
case class MyConfig(url: String, m: Map[String, String] = Map.empty)
val config1 = ConfigFactory.parseString("""{ "url": "https" }""")
val config2 = ConfigSource.fromConfig(config1).load[MyConfig]
println(config2)
代码在Scastie运行。