以编程方式将可选值写入类型安全配置对象
write optional value programmatically to Typesafe Config Object
我正在尝试创建一个带有可选值的 TypeSafe 配置,以最终将配置写入文件。
问题是当我这样做时
val newConfig = config
.withValue("something",ConfigValueFactory.fromAnyRef("defaultvalue"))
.withValue("something", ConfigValueFactory.fromAnyRef("${?optional}"))
结果类似于:
{something: ${?optional}}
但我想要这样的东西:
{something: defaultValue, something: ${?optional}}
是否可以通过编程方式做到这一点??
withValue
的问题是最后一次调用只会 return 一个只有新值的新对象。您可以使用 withFallback
,但它会遇到同样的问题,因为在构造对象时正在解析该值。
我玩了一会儿,但似乎 Typesafe Config API 是根据已解析的对象模型而不是 HOCON AST 表示的,这使您的用例不受支持。我建议您在他们的 GitHub 存储库中打开一个功能请求:https://github.com/lightbend/config/issues
我正在尝试创建一个带有可选值的 TypeSafe 配置,以最终将配置写入文件。
问题是当我这样做时
val newConfig = config
.withValue("something",ConfigValueFactory.fromAnyRef("defaultvalue"))
.withValue("something", ConfigValueFactory.fromAnyRef("${?optional}"))
结果类似于:
{something: ${?optional}}
但我想要这样的东西:
{something: defaultValue, something: ${?optional}}
是否可以通过编程方式做到这一点??
withValue
的问题是最后一次调用只会 return 一个只有新值的新对象。您可以使用 withFallback
,但它会遇到同样的问题,因为在构造对象时正在解析该值。
我玩了一会儿,但似乎 Typesafe Config API 是根据已解析的对象模型而不是 HOCON AST 表示的,这使您的用例不受支持。我建议您在他们的 GitHub 存储库中打开一个功能请求:https://github.com/lightbend/config/issues