我有一个使用ASM创建代理的Java库。
有一次,用户向它发送了一个Kotlin类。我可以检测到它是来自Java的Kotlin类,但我不知道如何从中创建代理呢?我从这样的课堂上读到的一切都是毫无意义的。
方案如下
最好的方法是什么?
我刚刚意识到我无法覆盖Kotlin函数的原因之一是因为它们是在字节码中生成为final
方法的。有没有办法告诉Kotlin不要这样做?
答案 0 :(得分:0)
我遇到的问题是生成的类和方法是table
。我正在使用的ASM代码没有处理最终方法,因为它们无法覆盖。
解决方案是将Kotlin中的类和函数标记为final
。您可以手动或使用open
插件执行此操作。
以下是解释此问题的页面:https://blog.frankel.ch/open-your-classes-and-methods-in-kotlin/