基本上,顶级函数不会编译到文件中定义的任何类中.而是为顶级成员创建一个单独的类:( FileNameKt
如果文件已命名FileName.kt
).
因此,为了使您的类正确加载(即没有任何不满意的链接),您必须首先加载FileNameKt
该类:
val bytes1 = File("../classes/path/to/class/FileNameKt.class").readBytes() val bytes2 = File("../classes/path/to/class/FileName.class").readBytes() val reloader = Reloader() reloader.load("FileNameKt", bytes1, 0, bytes1.size) reloader.load("FileName", bytes2, 0, bytes2.size).newInstance()