2016-07-28 9 views
4

Scalaの依存関係注入を扱う最良の方法は、言語用に特別に作成されたツールを使用することですが、ScalaとJavaコードを統合する必要があるプロジェクトに取り組んでいます。Scalaと@Inject annotation

次に、私はGoogle Guiceを使用しています。これは、仕様JSR-330を実装しています。 Fortunatly、私はGuiceとScalaの統合中に問題がないことを発見しました。私はコンストラクタの注射を使用しています。なぜなら、私は不変性に対処しなければならないからです。

私の質問は、スカラーではコンストラクタパラメータの前に表記@Inject()を使用する必要があるのはなぜですか?なぜ()パサンチェスですか?例を次に示します。

class MyClass @Inject() (val another: AnotherClass) { 
    // Body of the class 
} 

答えて

3

(val another: AnotherClass)@Injectにコンストラクタパラメータリストや引数であればそうでない場合は、どのように言うことができますか?

+0

簡単です。どうもありがとう –

3

これはすべて、コンストラクタに注釈を付ける構文です。 Scalaはiパラメータは以下に何を属します

class Bar @Fooable() (val i : Int) { 

} 

(それが空であっても)1(と正確に一つの)パラメータリストを持つコンストラクタの注釈が必要です:注釈やBarクラスを?

class Bar @Fooable(val i : Int) { 

}