NoClassDefFoundError For IClass$DefaultImpls 在 Kotlin 中为接口编写默认方法时
NoClassDefFoundError For IClass$DefaultImpls when writing default method for interface in Kotlin
我在 Kotlin 中有一个接口 MyInterface
,其中一些方法有默认实现。此外,我还有另一个接口 IClass
,它扩展了 MyInterface
,用 Java 编写。最后,我有一个 class MyClass
实现了用 Kotlin 编写的 MyInteface
。现在,当我 运行 我的代码时,出现以下错误。
java.lang.ClassNotFoundException: myPackage.IClass$DefaultImpls
我测试了 Kotlin 1.2.51 和 1.3.0
当我在 Kotlin 中编写 IClass 时,一切都按预期工作。
我的第一个代码有什么问题?
您可能想用 JvmDefault in Kotlin. It's a new feature described in detail here
注释您的方法
这是 Kotlin 编译器中的 a bug。作为解决方法,请按照另一个答案中的建议使用 @JvmDefault
。
我在 Kotlin 中有一个接口 MyInterface
,其中一些方法有默认实现。此外,我还有另一个接口 IClass
,它扩展了 MyInterface
,用 Java 编写。最后,我有一个 class MyClass
实现了用 Kotlin 编写的 MyInteface
。现在,当我 运行 我的代码时,出现以下错误。
java.lang.ClassNotFoundException: myPackage.IClass$DefaultImpls
我测试了 Kotlin 1.2.51 和 1.3.0
当我在 Kotlin 中编写 IClass 时,一切都按预期工作。 我的第一个代码有什么问题?
您可能想用 JvmDefault in Kotlin. It's a new feature described in detail here
注释您的方法这是 Kotlin 编译器中的 a bug。作为解决方法,请按照另一个答案中的建议使用 @JvmDefault
。