27

到目前为止,我一直在使用这个 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 中的实例?

4

1 回答 1

68

您必须使用该INSTANCE属性:

ScanAction test = ScanAction.Continue.INSTANCE;
于 2018-12-13T23:50:19.637 回答