Java到Kotlin泛型的转换

Java到Kotlin泛型的转换,java,generics,kotlin,Java,Generics,Kotlin,我想转移到Kotlin的旧Java项目,发现很有趣,无法毫无痛苦地将其转换为Kotlin public interface BaseJView<P extends BaseJPresenter> { P createPresenter(); } public interface BaseJPresenter<V extends BaseJView> { void bindView(V view); } 公共接口BaseJView{ P createPre

我想转移到Kotlin的旧Java项目,发现很有趣,无法毫无痛苦地将其转换为Kotlin

public interface BaseJView<P extends BaseJPresenter> {
    P createPresenter();
}
public interface BaseJPresenter<V extends BaseJView> {
    void bindView(V view);
}
公共接口BaseJView{
P createPresenter();
}
公共接口BaseJPresenter{
空视图(V视图);
}

你能给我一些建议吗,我怎样才能做到这一点呢?

一种方法是这样雇用:

接口BaseJView{
有趣的createPresenter():P
}
接口BaseJPresenter{
视图(视图:V)
}
然后,您可以拥有:

class Presenter : BaseJPresenter<Presenter, View> {
    override fun bindView(view: View) { ... }
}
class View : BaseJView<View, Presenter> {
    override fun createPresenter(): Presenter { ... }
}
类演示者:BaseJPresenter{
覆盖视图(视图:视图){…}
}
类视图:BaseJView{
重写有趣的createPresenter():Presenter{…}
}
class Presenter : BaseJPresenter<Presenter, View> {
    override fun bindView(view: View) { ... }
}
class View : BaseJView<View, Presenter> {
    override fun createPresenter(): Presenter { ... }
}