Android中Java无法调用含伴生对象枚举的Kotlin类问题
解决Java调用Kotlin伴生对象中枚举的问题
在Java中访问Kotlin伴生对象内定义的枚举类时,无需通过Companion实例中转,直接将其当作外部类的静态嵌套枚举类访问即可。
正确的Java调用代码如下:
new KotlinClass(KotlinClass.CompanionEnum.ENUM_1).doSomething();
原因说明
Kotlin的伴生对象编译为Java字节码后,其内部的嵌套类(包括枚举)会被处理为外部类的静态成员类,因此在Java环境中可以直接通过「外部类名+嵌套枚举类名」的形式访问,不需要借助Companion这个中间对象。
内容的提问来源于stack exchange,提问作者L. Swifter
相关产品推荐
相关产品推荐

