2017-05-23 17 views
1

私はKotlinを混乱させようとしています。私はジェネリックインターフェイスをより具体的なものにキャストしなければならなかった、我々はKotlinでKotlinより具体的なサブクラスへの一般的なキャスト

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

としてサブクラスにキャストします public <P extends BaseContract.Presenter> P getPresenter()

私はこのために行くよ:

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

がありますジェネリックスをベースインターフェイスに固定せずに私ができることは何ですか?あなたの質問の私の理解あたりとして

答えて

1

、あなたは、このようmPresenterがBaseContract.Presenterクラス

を拡張する任意のプレゼンターのインスタンス可能性があり

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

それを行うことができます

関連する問題