2

誰かがここでエラーを理解するのを手伝ってくれませんか? Scala でのトレイトを使用した無名クラスの構築を理解していると思います。ただし、複数の特性を適用しようとすると、「;」を期待してエラーが発生します。またはステートメントの本質的な終わり。この方法でクラスを宣言すると、同じ問題が適用されるようです (コードの匿名実装行を必要とする複数の特性を使用する場合は、以下の行テスト 3 が失敗します。ありがとうございます。

class TestTraits 

trait A {def x:Int}
trait B {def y:Int}



object TestTraits {

  def main(args: Array[String]): Unit = {

     val test1 = new TestTraits with A {def x=22}  //OK

     val test2 = new TestTraits with B {def y=33} //OK

     val test3 = new TestTraits with A {def x=22} with B {def y=33} //Errors: - ';' expected but 'with' 


  }  
}
4

1 に答える 1

5

あなたの構文は無効です:

val test3 = new TestTraits with A with B {def x=22; def y=33} 

クラス定義は 1 つの本体のみを持つことができ、宣言しているのは匿名クラスです。

于 2012-07-10T23:25:09.490 に答える