从 Java 访问 Kotlin 密封类

2022-09-01 13:43:07

到目前为止,我一直在使用这个 Kotlin 密封类:

sealed class ScanAction {
   class Continue: ScanAction()
   class Stop: ScanAction()
   ... /* There's more but that's not super important */
}

这在我的Kotlin和Java代码中都运行良好。今天,我尝试将此类更改为使用对象(建议这样做以减少额外的类实例化):

sealed class ScanAction {
   object Continue: ScanAction()
   object Stop: ScanAction()
}

我能够在其他Kotlin文件中引用这个简单的peasy,但是我现在很难在我的Java文件中使用它。

我已经尝试了以下方法,并且在尝试在Java中引用时,这两个都回滚编译错误:

ScanAction test = ScanAction.Continue;

ScanAction test = new ScanAction.Continue();

有谁知道我现在如何在Java中引用该实例?


答案 1

您必须使用以下属性:INSTANCE

ScanAction test = ScanAction.Continue.INSTANCE;

答案 2

推荐