【发布时间】:2016-01-16 17:29:31
【问题描述】:
我目前正在研究 Scala 中的 A* 实现。为了完成一个干净的结构,我想使用一个实现自界特征的嵌套案例类结构。但是,我在 Scala IDE 中实现此功能时遇到了一些问题。以下代码将无法编译:
trait A[T <: A[T]]
class B {
case class C(int: Int) extends A[C] // A[this.C] won't work either
def make = C(5)
}
object D {
def foo[T <: A[T]](some: T) = {}
val c = new B().make
foo(c) // this does not compile
}
有什么办法可以让这个结构正常工作吗?
【问题讨论】:
-
路径相关类型的一个很好的解释可以在stackoverflow.com/questions/2693067/…找到
标签: scala generics case-class