Проведя смехотворное количество времени, пытаясь понять, почему мои инъекции кинжала не работают; Я понял, что проблема "объекта" в Котлине была проблемой.
Не удалось выполнить следующее: введенное свойство было null.
object SomeSingleton {
@Inject
lateinit var property: Property
init {
DaggerGraphController.inject(this)
}
}
Однако, следующий DID работает просто отлично:
class NotSingleton {
@Inject
lateinit var property: Property
init {
DaggerGraphController.inject(this)
}
}
Я попробовал Google, я пробовал документацию, но я не мог указать причину этого. Также обратите внимание, что я не пробовал это с JAVA, у JAVA нет концепции создания синглонов в любом случае.
Почему это так? Почему kotlin singleton не может вводить члены, но обычный не-одиночный класс может?