使用 类 在 scala 中同一个包的特征中定义。

Use classes defined in traits on the same package in scala.

我相信在 Scala 中,我可以在我的特征中使用其他特征中定义的 类。类似于以下内容:

trait A{
  sealed abstract class C
}

trait B{
  import A.C
  val l: List[C]
}

但是,我发现 A 和 C 都无法识别。

我做错了什么?

这里不需要导入。 AC 可在 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]
}