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代码相同的行为。

提前致谢。

One Solution collect form web for “Kotlinreflection+generics”

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

 // < ? extends Event> 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) } 
  • Kotlin Spring Boot使用Map创建urlencoded POST请求
  • 如何在Kotlin中添加数组索引值?
  • 在Kotlin中相当于C ++ Enum
  • 构造函数中的调用顺序是有保证的
  • Android - 在Kotlin中声明和使用视图
  • 参考与价值比较
  • Kotlin:Apply和Also有什么区别?
  • 如何检查天气纯文本是否为空?
  • 如何以types安全的方式从通用列表中检索项目
  • kotlin原生未知主机目标
  • Java的Kotlin:是否可以为空?
  • Kotlin language will be the best programming language for Android.