【发布时间】:2020-04-19 07:01:54
【问题描述】:
我正在尝试从配置文件中加载Map[String, Any]。目前是这样写的
map-name {
stringValue = "firstValue"
intValue = 1
booleanValue = true
}
Pureconfig 无法将此配置读取为Map[String, Any]。它仅在将 Any 替换为某些严格类型时才有效,但我想要比这更大的灵活性。
有没有办法解决这个问题?
【问题讨论】:
-
拥有一个叫做typesafe的东西的想法是typesafe。为什么要
Map[String, Any]?使用它会很困难且不安全。对于这种场景,pureconfing 允许您将这种对象读取为 case 类 的实例,因此您可以funal case class MapName(stringValue: String, intValue: Int, booleanVale: Boolean)。 -
关于类型安全的观点。我正在尝试为框架传递配置值。我这样做是为了让框架根据情况表现不同。 map 的键和值对应于框架配置的键和值。所有键都是字符串,但值可以是任何东西。我目前正在尝试创建这样的案例类
FrameWorkConf(firstCircumstanceConfig: Map[String, Any], secondCircumstanceConfig: Map[String, Any] -
框架是否需要
Map[String, Any]? -
不,它需要一个
Config对象。我将使用Map[String, Any]创建Config。像这样config.withValue(mapKey, ConfigValueFactory.fromAnyRef(mapValue)) -
你试过直接将配置读取为 Config 吗?
标签: scala config typesafe pureconfig