为什么我不能访问Kotlin中的超类枚举?
我将一个Java Android项目转换为Kotlin。
我正在使用API.AI的客户端 ,它有两个AIConfiguration
类:
超
package ai.api; public class AIConfiguration implements Cloneable { public static enum SupportedLanguages { English("en"), //... } //... }
子类
package ai.api.android; public class AIConfiguration extends ai.api.AIConfiguration { public enum RecognitionEngine { //... }
在我的Java代码中,我正在创建一个子类的实例,正如api指南中的建议:
final AIConfiguration config = new AIConfiguration("TOKEN", AIConfiguration.SupportedLanguages.English, AIConfiguration.RecognitionEngine.System);
一旦转换为Kotlin,看起来像这样:
val config = AIConfiguration("TOKEN", AIConfiguration.SupportedLanguages.English, AIConfiguration.RecognitionEngine.System)
…导致Unresolved reference: SupportedLanguages
。
- 我可以更新对
ai.api.AIConfiguration.SupportedLanguages.English
的引用,其中编译成功。 - 我可以导入超类的
import ai.api.AIConfiguration as SuperAIConfiguration
和使用SuperAIConfiguration.SupportedLanguages
,但我宁愿直接参考枚举的子类。
我不明白: 为什么这个引用在Java中有效,而在Kotlin中不是?