我正在使用Scala编写Play 2.5应用程序。我有以下代码:

@ImplementedBy(classOf[BarRepositoryImpl])
trait BarRepository {
  def bar = //some actions
}
class BarRepositoryImpl extends BarRepository

case class Foo( /*some fields*/) {
  @Inject private var barRepository: BarRepository = null
  def foo1 = {
    val a = barRepository.bar //here barRepository is always null
    // some actions with 'a' and returning some result which depends on 'a'
  }
}

我也有一个 Controller ,我也可以在其中注入(inject)BarRepository,但是通过构造函数,在类foo上val a = barRepository.bar行上,一切正常,我得到了NullPointerException。有人可以帮忙找出问题所在吗?案例类中禁止使用注入(inject)吗?

最佳答案

我会以为您在类签名中注入(inject)了对象?

case class Foo @Inject()(barRepository:BarRepository, /* your fields */){
    /** some stuff **/
}

关于scala - Scala案例类中的Google Guice字段注入(inject),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38641265/

10-10 07:36