如何通过根类中的函数返回任何继承它的继承类?

时间:2018-02-23 04:45:46

标签: kotlin

我有一个继承了特定类的类,我已经放了所有的初始化代码。我目前把它作为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())

有没有比铸造更好的方法呢?

0 个答案:

没有答案