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 に答える