Kotlin Generics tipo personalizado con comodín

Entonces en Java puedo hacer lo siguiente para definir un tipo que tiene una restricción de Superclass e Interfaz.

public class Main<ControllerType extends Node & Controller> { private ControllerType controller; private ControllerType controller2; private Main(ControllerType controller, ControllerType controller2) { this.controller = controller; this.controller2 = controller2; } public static void main(String[] args) { Main<?> main = new Main<>(new Home(), new Parent()); } } 

Pero en Kotlin esto no es posible.

 class Main<ControllerType>(val controller: ControllerType, val controller2: ControllerType) where ControllerType : Node, ControllerType : Controller fun main(args: Array<String>) { val main = Main<*>(Home(), Parent()) } 

Recibo el siguiente error en la proyección de estrella:

Las proyecciones no están permitidas en los arguments de tipo de funciones y properties

Entonces, ¿cómo podría uno resolver este problema? Busqué alias de tipo pero no tienen la funcionalidad deseada.

No, no hay forma de hacerlo como Java como comodín. Esto no es posible porque el comodín NO es seguro.

 private Main(ControllerType controller, ControllerType controller2) 

se supone que el controller y el controller2 son del mismo tipo o del tipo henetworkingado, pero Java le permite usar el comodín.

La proyección de estrella no es un reemploop de comodín. La proyección en estrella se utiliza cuando no se conoce el tipo exacto y le permite realizar una operación segura.

Si el controller y el controller2 son dos types diferentes, entonces debe tener dos parameters generics.

 class Main<T, U>(val controller: T, val controller2: U) where T : Node, T : Controller, U : Node, U : Controller fun main(args: Array<String>) { val main = Main(Home(), Parent()) } 
  • Campos de extensión en Kotlin
  • Subclass Relative Layout con constructores secundarios en Kotlin
  • Clase Derivada Parcelable en Kotlin
  • Manejando una tarea después de un Fragmento de Cargas
  • Eliminar ruptura en Kotlin cuando expresión
  • Función de queue Kotlin List
  • Error de reference no resuelto al llamar al método add en Kotlin Set interface
  • ¿Las extensiones de Kotlin para Android almacenan en caching las properties sintéticas o cada vez que llama a findViewById ()?
  • Kotlin - Cómo recursivamente llamar a una function lambda
  • Constructor de vista personalizada en Android 4.4 se bloquea en Kotlin, ¿cómo solucionarlo?
  • Forma rápida de get el número de mes de java.util.Date