首页 > 解决方案 > ficus lib有什么方法可以根据配置中的值在scala案例类中注入Long或String

问题描述

我正在使用ficus 库
解析 scala 案例类中的配置 案例类大致如下所示

case class Entity(value: Any)

和配置

{
  value = "something"
}

值可能是数字或字符串。
但是没有config.as[Entity]("pathToConfig")返回值java.lang.Object
如何根据配置中的值使榕树注入 Long 或 String 值?

标签: scalaconfiguration

解决方案


Entity我像这样为这个特定的类 创建了一个 ValueReader

  implicit val entityReader: ValueReader[Entity] = ValueReader.relative { config =>
    config.getAnyRef("value") match {
      case value: java.lang.Integer => Entity(value.toLong)
      case value => Entity(value)
    }
  }

这种方式valueEntityString 或 Long


推荐阅读