我正在使用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/