Da Kotlin M13 rilascio, una nuova proprietà è stato appositamente aggiunto per supporto dipendenza iniezione (come con Dagger 1 & 2) e altri quadri.
Si chiama lateinit proprietà. Tratto da documentazione:
class Example {
@Inject
lateinit var bar: Bar
}
In poche parole, bar non ha initializers ma viene dichiarato come un tipo non nullo. Se si tenta di leggerlo prima dell'inizializzazione, viene generata un'eccezione.
Altrimenti, una volta inizializzato usando Dagger, può essere usato come una proprietà normale.
Tutto è ben spiegato nel language doc ed è anche possibile controllare lo blog post relative per il rilascio M13 lì.
Come ritardare il tipo primitivo come Int, Long in kotlin –