扩展它的对象共享的特征中的静态值

时间:2013-01-24 14:23:56

标签: scala

我有一些实现特征的对象。我试图让val对所有这些对象都是静态的并且是通用的。我有read,这样做的方法是使用伴随对象作为特征。我使用了以下内容:

trait Test

object Test extends Test{
  val a = 1
}

object Test2 extends Test{
  def test = {
    val b = a
  }
}

但是,在行val b = a中,我收到“未找到:值a”错误。如果能解决这个问题,我将不胜感激。

1 个答案:

答案 0 :(得分:3)

默认情况下,随播对象的成员对任何人都不可见,甚至是他们的伴侣类。所以你需要一个明确的导入:

trait Test

object Test extends Test{
  val a = 1
}

object Test2 extends Test{
  import Test._

  def test = {
    val b = a
  }
}

我不知道在没有每个子类的导入的情况下是否有一种很好的方法...