所以我试图搞乱 Kotlin,我有一个旧的 Java MVP 框架,在 Java 中有一些糟糕的泛型,我们不得不将一个通用接口(interface)转换为一个更具体的接口(interface),比如
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
}
如果不修复基本接口(interface)中的泛型,我还能做什么?
最佳答案
根据我对你问题的理解,你可以这样做,
override fun <P: BaseContract.Presenter> getPresenter(): P {
return mPresenter
}
其中 mPresenter 可以是扩展 BaseContract.Presenter
类的 Any Presenter 的实例
关于java - Kotlin 泛型转换为更具体的子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44137129/