В настоящее время я работаю над проектом, для которого требуется Java код, переведенный в Kotlin. У меня проблема с дженериками, и я пытаюсь решить ее. Буду признателен за любую помощь!
Ниже приведен код Java:
public abstract class BaseActivity<P extends IBaseActivityMvpPresenter> extends AppCompatActivity implements IBaseActivityMvpView {
public interface IBaseActivityMvpPresenter<V extends IMvpView, S extends IBaseState> extends IStateMvpPresenter<V, S> {
public interface IMvpView {
public interface IBaseState extends Parcelable {
public interface IStateMvpPresenter<V extends IMvpView, S extends IBaseState> extends IMvpPresenter<V> {
public interface IMvpPresenter<V extends IMvpView> {
public interface IBaseActivityMvpView extends IMvpView {
, а вот код kotlin, который я придумал:
abstract class BaseActivity<P : IBaseActivityMvpPresenter<IMvpView, IBaseState>>
: AppCompatActivity(), IBaseActivityMvpView {
interface IBaseActivityMvpPresenter<V : IMvpView, S : IBaseState> : IStateMvpPresenter<V, S> {
interface IMvpView {
interface IBaseState : Parcelable {
interface IStateMvpPresenter<V : IMvpView, S : IBaseState> : IMvpPresenter<V> {
interface IMvpPresenter<V : IMvpView?> {
interface IBaseActivityMvpView : IMvpView {
Проблема с текущим приведением:
@Override
public void setPresenter(@NonNull IMvpPresenter presenter) {
this.presenter = (P) presenter;
}
до:
override fun setPresenter(@NonNull presenter: IMvpPresenter<*>?) {
if (presenter is IMvpPresenter) {
this.presenter = presenter as P
}
}
У меня исключение приведения класса
Спасибо