0

我有一些实现特征的对象。我试图拥有一个val对所有这些对象都是静态且通用的。我已经读过这样做的方法是使用特征的伴随对象。我使用了以下内容:

trait Test

object Test extends Test{
  val a = 1
}

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

但是,在该行中,val b = a我收到“未找到:值 a”错误。我将不胜感激有关如何解决此问题的帮助。

4

1 回答 1

3

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

trait Test

object Test extends Test{
  val a = 1
}

object Test2 extends Test{
  import Test._

  def test = {
    val b = a
  }
}

我不知道是否有一种很好的方法可以在每个子类中都没有导入...

于 2013-01-24T14:34:27.300 回答