以编程方式将可选值写入Typesafe配置对象

时间:2017-11-08 13:40:31

标签: scala config typesafe typesafe-config typesafe-stack

我正在尝试创建一个带有可选值的TypeSafe配置,以便最终将配置写入文件。

问题在于我做的时候

 val newConfig = config
.withValue("something",ConfigValueFactory.fromAnyRef("defaultvalue"))
.withValue("something", ConfigValueFactory.fromAnyRef("${?optional}"))

结果如下:

{something: ${?optional}}

但我想要像:

{something: defaultValue, something: ${?optional}}

有可能以编程方式做到吗?

1 个答案:

答案 0 :(得分:1)

withValue的问题是最后一次调用只返回一个只有新值的新对象。您可以使用withFallback,但它会遇到同样的问题,因为在构造对象时正在解析该值。

我玩了一段时间,但似乎Typesafe Config API是用已解析的对象模型表示的,而不是HOCON AST,这使得你的用例不受支持。我建议你在他们的GitHub仓库中打开一个功能请求:https://github.com/lightbend/config/issues