为什么我不能访问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中不是?