我有一个继承了特定类的类,我已经放了所有的初始化代码。我目前把它作为T来表示,以便返回我的新课程。
abstract class RootRepository<out T> : KodeinInjected {
override val injector: KodeinInjector = KodeinInjector()
@Suppress("UNCHECKED_CAST")
fun init(kodein: Kodein): T {
injector.inject(kodein)
return this as T
}
}
假设我有一个函数和一个名为NewRepo的类。
class NewRepo: RootRepository<NewRepo>() {
private val mangaDao by injector.instance<MangaDao>()
private val api by injector.instance<Api>()
fun getMangaList() {
//Some code here
}
fun fetchMangaList(){
//Some code here
}
}
在另一个班级,我有这个。
val newRepo:NewRepo = NewRepo.init(appKodein())
有没有比铸造更好的方法呢?