【发布时间】:2018-06-08 14:30:28
【问题描述】:
如果我有一个抽象类Location 和两个子类如下
abstract class Location[L <: Location[L]]
case class Loc1(name: String) extends Location[Loc1]
case class Loc2(name: String) extends Location[Loc2]
def getLoc[L <: Location[L]](x: Boolean): L =
if (x) Loc1("1")
else Loc2("2")
调用getLoc 将导致类型不匹配,因为它需要L,但看到Loc1 或Loc2。我怎样才能让它返回特定的子类,但作为超类L 或Location[L]?
【问题讨论】: