pureconfig нет ручного импорта pureconfig.generic.auto._
Последние обновления pureconfig в 0.10.*
серия отключена автоматическая настройка по умолчанию.
import pureconfig.generic.auto._
нужно импортировать вручную. Но у меня есть иерархия классов, где я не хочу импортировать ее каждый раз для дочернего класса.
import pureconfig.ConfigReader
abstract class SparkBaseRunner[T <: Product](implicit A: ConfigReader[T])extends App {}
уже ожидает configReader. При использовании этого базового класса:
object MyOperation extends SparkBaseRunner[MyCaseClass] {}
это терпит неудачу с:
could not find implicit value for parameter A: pureconfig.ConfigReader[foo.bar.my.Type]
если только вышеупомянутые входные данные не указаны вручную в каждом дочернем классе. Есть ли способ избежать этого дублирования кода? Попытка указать входные данные в абстрактном базовом классе не сработала для меня, поскольку для этого уже требуется объект ConfigReader.
редактировать
Попытка вручную получить доступ к читателю конфигурации внутри базового класса также не удалась:
implicit val configReader = deriveReader[T]
could not find implicit value for parameter A: pureconfig.ConfigReader[T]
could not find Lazy implicit value of type pureconfig.generic.DerivedConfigReader[T]
Моя версия Scala: 2.11.12
0 ответов
Я считаю, что конфигурация уже читается как одна операция, и есть несколько приложений, все из которых делают следующее:
object Ops extends SparkBaseRunner[MyCaseClass]
Я не вижу способа избежать дублирования, поскольку базовый класс не может вывести конфигурацию, поскольку все, что он имеет, является универсальным типом T
,
Лучшее решение - не беспокоиться об этом и использовать auto._
,
import pureconfig.generic.auto._