Параметры рекурсивного типа в котлине - PullRequest
0 голосов
/ 22 января 2019

Я хочу написать что-то подобное в Kotlin.

open class View<P> where P:Presenter<out _this_class_> {
    val presenter: P = ...
}

open class Presenter<V> where V: View<out _this_class_> {
    val view: V = ...
}

Как я могу правильно это сделать?

1 Ответ

0 голосов
/ 22 января 2019

Стандартный способ (называемый F-ограниченным полиморфизмом ) -

open class View<V: View<V, P>, P: Presenter<out V>> { ... }

. Возможно, имеет смысл поместить out в другом месте, в зависимости от особенностей:

open class View<out V: View<V, P>, out P: Presenter<V>> { ... }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...