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

时间:2017-05-23 14:08:13

标签: java android generics kotlin mvp

所以我试图搞乱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
}

如果不修复基本界面中的泛型,我能做些什么吗?

1 个答案:

答案 0 :(得分:1)

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

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

其中mPresenter可以是扩展BaseContract.Presenter

的Any Presenter的实例
相关问题