Reflexión de Kotlin + generics

EDITOR 1: Título cambiado, mi mal.

Tengo un evento de interfaz:

interface Event 

Y algunas classs que lo implementan, como CustomEvent :

 class CustomEvent : Event { ... } 

Lo que he estado tratando de hacer ahora es: dado un método que tiene un evento como parámetro (por lo tanto, cualquier class que implemente la interfaz del evento ), como este

 fun onCustomEvent(event: CustomEvent) { ... } 

, Quiero agregar ese evento a una list. Por lo tanto, esta list terminará teniendo varios events diferentes.


En Java creo que sería algo como esto (podría no ser 100% exacto):

 List<Class<? extends Event>> eventsList; .... Class<?> param = methodThatHasSomeEventAsParam.parameterTypes[0]; if (Event.class.isAssignableFrom(param)) { Class<? extends Event> actualParam = (Class<? extends Event>) param; eventsList.add(actualParam); // Adds CustomEvent to the events list. } 

Pero en cuanto a Kotlin, realmente no estoy seguro de cómo usar los generics de forma adecuada, específicamente cuál sería la forma correcta de traducir

 Class<? extends Event> 

a Kotlin, manteniendo el mismo comportamiento que el código de Java anterior.

Gracias por adelantado.

Gracias por la ayuda; esta sería la manera de hacerlo en Kotlin:

 // <? extends Event> in Java ==> <out Event> in Kotlin. val myList: MutableList<Class<out Event>> val param: Class<*> = methodThatHasSomeEventAsParam.parameterTypes[0] if (Event::class.java.isAssignableFrom(param)) { param as Class<out Event> myList.add(param) }