【发布时间】:2016-02-29 22:14:21
【问题描述】:
如何在其方法中定义带有泛型参数的特征,然后用特定类型的参数覆盖?
一个例子:
import shapeless._
case class UserA(name:String)
case class UserB(name:String)
trait User {
def save(item:Option[T]): Option[T]
}
class UserAdmin extends User {
def save(item:Option[UserA]): Option[UserA]
}
class UserSomethingElse extends User {
def save(item:Option[UserB]): Option[UserB]
}
有了这个,我得到了错误not found: type T,即使它是在 shapeless 中定义的
【问题讨论】:
-
我认为您可能会将“通用编程”(这是无形的)与“参数多态性”混淆,这似乎是您在这个问题中所关心的。我知道这很令人困惑,因为“泛型”是一个有时用来谈论参数多态性的术语。
-
是的,你绝对是对的.. 谢谢指出