Kotlin通用铸造到一个更具体的子类

所以我试图搞砸Kotlin,我有一个老的java MVP框架,在java中我们不得不将一个通用的接口转换为一个更具体的接口,比如public <P extends BaseContract.Presenter> P getPresenter()

我们将在一个子类中作为

 @Override public AdvertisementContract.Presenter getPresenter() { return (AdvertisementContract.Presenter)super.getPresenter(); } 

在Kotlin我要这样做:

 override fun getPresenter(): AdvertisementContract.Presenter { return super.getPresenter() as AdvertisementContract.Presenter } 

有没有什么我可以做,而不需要在基础界面中修改泛型?

根据我对你的问题的理解,你可以这样做,

 override fun <P: BaseContract.Presenter> getPresenter(): P { return mPresenter } 

其中,mPresenter可以是任何展示者扩展BaseContract.Presenter类的实例