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.

  • Kotlin Annotation IntDef
  • kotlin verificar campos de input
  • Analizando json con API remota rota
  • ¿Cuáles son los límites en el despacho dynamic / doble en Kotlin?
  • Cómo animar una list de animation en Kotlin?
  • Kotlin - Usando Enums para recuperar un Char
  • Fragmento: Visibilidad relativa de la presentación no modificable en OnCreateView
  • ¿Cómo hacer valer un String vacío y no nulo en Kotlin?
  • Retrofit2 y kotlin
  • ¿Cómo inyectar en una propiedad delegada de Kotlin con Dagger 2?
  • Función de extensión Android Studio 3.0 kotlin 'Referencia no resuelta'