Kotlinreflection+generics

编辑1:改变标题,我的坏。

我有一个界面事件

interface Event 

还有一些实现它的类,比如CustomEvent

 class CustomEvent : Event { ... } 

我一直在尝试做的是:给定一个有事件作为参数的方法(所以,任何实现Event接口的类),像这样

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

,我想将该事件添加到列表中。 因此,这个清单最终将会持有一堆不同的事件。


Java中,我相信它会是这样的(可能不是100%准确的):

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

但至于Kotlin,我真的不知道如何正确使用generics,具体是什么将是正确的翻译方式

 Class 

到Kotlin,保持与上面的Java代码相同的行为。

提前致谢。

谢谢您的帮助; 这将是在科特林做到这一点的方式:

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