Представьте себе следующий код:
trait Converter[T] {
def convert(value: String): T
}
object Converter {
implicit val intConverter: Converter[Int] = value => value.toInt
implicit def optionConverter[T]: Converter[Option[T]] = new OptionConverter[T]
}
class OptionConverter[T](implicit val ev: Converter[T]) extends Converter[Option[T]] {
...
}
Как видите, OptionConverter
принимает Converter[T]
для типа, который он содержит, но компилятор жалуется, потому что когда он пытается скомпилировать OptionConverter
, он не знает тип.
Я предполагаю, что это, вероятно, уже решено ... но я не могу найти решение.
Есть идеи?