我相信在Scala中,我可以使用特征中其他特征定义的类。类似于以下内容:
trait A{
sealed abstract class C
}
trait B{
import A.C
val l: List[C]
}
但是,我发现A和C都不被识别。
我在做什么错了?
答案 0 :(得分:2)
您不需要在这里导入。 A
和C
可以在B
内部以类型位置访问,而无需导入。
尝试
trait A {
sealed abstract class C
}
trait B {
val l: List[A#C]
}
或
trait A {
sealed abstract class C
}
trait B {
type C = A#C
val l: List[C]
}
否则,您可能会说
trait A {
sealed abstract class C
}
val a = new A {}
trait B {
import a.C
val l: List[C]
}
或
object A {
sealed abstract class C
}
trait B {
import A.C
val l: List[C]
}