Я пытаюсь сделать метод или полевую инъекцию в Scala.Я использую Play Framework, который использует Guice для инъекций.Я пробовал полевую инъекцию как:
@Inject val cache: DefaultSyncCacheApi = null
как подробно здесь , но всякий раз, когда я пытаюсь проверить это, я получаю NullPointerException
.Я также попробовал метод инъекции, например:
@Inject
def method(id: String, cache: DefaultSyncCacheApi): Boolean = {
val cachedItem = cache.get(id)
cachedItem.isDefined
}
, но безрезультатно.Пришлось бы перейти в кеш и из другого места.
Я также пытался использовать перегруженные методы и инъекции отдельно, такие как:
val cache: DefaultSyncCacheApi //this will not work if it is not an abstract class
@Inject //either injecting here
def methodA(id: String): Boolean = {
methodB(string, cache)
}
@Inject //or injecting here
def methodB(id: String, cache: DefaultSyncCacheApi): Boolean = {
//same logic as 'method' above
}
безрезультатно.Есть ли четкий способ сделать метод или полевую инъекцию, не вызывая NPE?