scala - Scala 类型标签 - 完全限定与非完全限定
问题描述
我有一些代码(难以共享,我无法轻松复制),它引发了以下错误:
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
只是一个案例类
有任何想法吗?
解决方案
你可能想要的是
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)
这显然不是你想要的。
推荐阅读
- python - 如何使用 python usdz 命令行工具将形状键动画从 .glb 转换为 .usdz
- python - JSON到字符串到JSON Python
- c# - 等待 faceClient.Face.DetectWithStreamAsync 返回 null
- django - 如何在多个 django 模型上为 Sum() 应用注释?
- firebase - 如何在 Firebase 中设置规则,以便只有我的应用程序可以在我的数据库 firestore 上写入?
- git - 使用文件过滤器时,Git show 不显示所有提交
- c - Windows 10 上的 Cygwin 和 MinGW
- javascript - 用php发送文件名并用js处理
- reactjs - react-router 在使用 GoDaddy 上托管的 React 应用程序刷新页面时抛出 404
- magento - 无法使用 graphql 获取我的 magento 2.3.3 数据