Scala和@Inject注释

ric*_*din 5 java dependency-injection scala

我知道在Scala中处理依赖注入的最佳方法是使用专门为该语言构建的工具,但我正在开发一个必须集成一些Scala和Java代码的项目.

然后,我使用的是Google Guice,它实现了规范JSR-330.幸运的是,我在Guice和Scala的集成过程中没有发现任何问题.我正在使用构造函数注入,因为我必须处理不变性.

我的问题是,为什么在Scala中我们必须@Inject()在构造函数参数前面使用表示法?为什么这个()paranthesis?它遵循一个例子:

class MyClass @Inject() (val another: AnotherClass) {
  // Body of the class
}
Run Code Online (Sandbox Code Playgroud)

Ale*_*nov 4

否则,你如何判断是(val another: AnotherClass)构造函数参数列表还是参数@Inject