Kotlin将类型参数作为函数参数

我有一个内置的函数,带有一个带有lambda的特定类型参数,它返回一个匿名类的新实例,该实例具有一个采用该特定类型参数并将其传递给lambda的方法。

inline fun <reified T : Any> eventHandler(crossinline handler: (T) -> Unit) = object { @Handler fun event(event: T) = handler(event) } 

它用于eventHandler<ExampleEvent> { println(it.data); } eventHandler<ExampleEvent> { println(it.data); }和一切编译。

然而,调查在所提到的调用创建的类生成的字节码,我得到这个事件方法:

 public final void event(example.ExampleEvent); descriptor: (Ljava/lang/Object;)V [...] Signature: #53 // (Lexample.ExampleEvent;)V 

因此,虽然它正确地记住了签名中的类型,但它将在描述符中丢弃它; 因此, thatEventMethod.getParameterTypes()将具有Object而不是ExampleEvent

这是一个错误或预期的行为? 而且,如果这是有意的,是否还有其他方法可以实现我的目标(这是为了防止在任何地方创建这个笨拙的对象,用@Handler等添加一个虚拟方法)?