Kotlin: ¿cómo usar múltiples generics en class?

Estoy tratando de convertir esta class c # a kotlin para Android:

public class ChildItemCollection<P, T, C> : ICollection<T> where P : class where T : ChildItem<P> where C : class, ICollection<T> { private P _parent; private C _collection; public ChildItemCollection(P parent, C collection) { this._parent = parent; this._collection = collection; } ... } public class ChildItemCollection<P, T> : ChildItemCollection<P, T, List<T>> where P : class where T : ChildItem<P> { #region Constructors public ChildItemCollection(P parent) : base(parent, new List<T>()) { } public ChildItemCollection(P parent, ICollection<T> collection) : this(parent) { foreach (T item in collection) this.Add(item); } #endregion Constructors } 

He intentado muchas cosas sin éxito.

No entendí cómo usar las líneas "dónde" tampoco.

En Kotlin, puede especificar los límites superiores del parámetro de tipo en su statement:

 class ChildItemCollection<P, T : ChildItem<P>, C : Collection<T>> : ... 

Si tiene múltiples límites superiores, deben especificarse por separado con where , ver otro Q & A.

Además, Kotlin no tiene un límite superior de class , porque no hay distinción entre los types de valores y las classs.

  • No se pudo encontrar la class 'kotlin.jvm.internal.DefaultConstructorMarker'
  • Declaración de object global en kotlin
  • Kotlin - extraer la list de objects padre de los elementos en la Colección
  • ¿Qué corresponde exactamente a una Regex creada con Regex.fromLiteral ()?
  • ¿Cómo se representan las tags de los componentes web en los frameworks html de Kotlin?
  • Gradle 3.0.0-alpha1 no es compatible con el plugin de kotlin-android 1.1.2-3?
  • Android Library Module desarrollado en Kotlin exportado a la aplicación Java causando una resolución fallida de: Lkotlin / jvm / internal / Intrinsics
  • ¿Cómo get respuesta en la retroadaptación al usar rxAndroid?