我有一些代码(难以共享,无法轻松复制),并抛出以下错误:
found: reflect.runtime.universe.TypeTag[com.company.some.package.Individ]
required: reflect.runtime.universe.TypeTag[Individ]
我的代码无法找到TypeTag,因此我尝试显式传递它。即代替
abstract class Validator[T<: Product: TypeTag] {...}
class Validator[Individ] extends Validator[Individ] {...} // Implicits not found
我尝试过..
abstract class Validator[T<: Product](implicit tt: TypeTag[T]) {...}
implicit val tt = typeTag[Individ]
class Validator[Individ] extends Validator[Individ]()(tt) {...} // Wrong type, as above
Individ
只是一个案例类
有什么想法吗?
答案 0 :(得分:3)
您可能想要的是
class IndividValidator extends Validator[Individ] {...}
写作时
class IndividValidator[Individ] extends Validator[Individ]()(tt)
您使用名为IndividValidator
的泛型类型参数创建一个新的泛型类Individ
,它会掩盖您导入的类。因此,Individ
中的术语extends Validator[Individ]
与此类型参数而不是您的com.company.some.package.Individ
相匹配。换句话说,这是与
class IndividValidator[A] extends Validator[A]()(tt)
这显然不是您想要的。