Есть ли способ, чтобы фикус lib мог внедрить в класс случая scala Long или String, в зависимости от значения в конфигурации - PullRequest
1 голос
/ 03 июля 2019

Я анализирую конфигурацию в классе дел Scala с библиотекой фикуса
Класс корпуса примерно выглядит следующим образом

case class Entity(value: Any)

и конфигурация

{
  value = "something"
}

значение может быть числом или строкой.
Но config.as[Entity]("pathToConfig") возвращает значение как java.lang.Object без нуля.
Как заставить фикус вводить в значение Long или String в зависимости от значения в конфигурации?

1 Ответ

1 голос
/ 03 июля 2019

Я создал ValueReader для этого конкретного Entity класса, как этот

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

Таким образом value внутри Entity String или Long

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...