Quiero escribir algo así en 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 = ... }¿Cómo puedo hacer eso correctamente?
La forma estándar (llamada polimorfismo limitado por F ) es
open class View<V: View<V, P>, P: Presenter<out V>> { ... } Puede tener más sentido publicar out otro lugar aquí, dependiendo de los detalles:
open class View<out V: View<V, P>, out P: Presenter<V>> { ... }