如何为Kotlin属性指定参数化的generics?

我在Kotlin中有一个方法,如下所示:

fun  addEventListener(eventClass: Class, eventHandler: EventHandler) { eventListeners.put(eventClass, eventHandler) } 

另外我有一个属性eventListeners但我不知道如何定义它,所以它会有相同的genericstypes,有点像这样

 private val eventListeners = HashMap<Class, EventHandler>() 

很明显, T不会为属性eventListenerseventListeners ,那就是我正在努力的。 大家都知道,我知道T可以被定义为整个类(例如, class MyClass {...} ),这样就简单了,但在这种情况下,我不能做到这一点。

你不能安全地做。 你需要使用例如eventListeners: HashMap, EventHandler<*>>并在getEventListener中进行投射, 如果您只访问这两个函数的listeners这应该是安全的。 提取到一个单独的类将会阻止直接访问地图是合理的。