从 Java 访问 Kotlin Sealed Class
Accessing Kotlin Sealed Class from Java
到目前为止,我一直在使用这个密封的 Kotlin class:
sealed class ScanAction {
class Continue: ScanAction()
class Stop: ScanAction()
... /* There's more but that's not super important */
}
它在我的 Kotlin 和 Java 代码中都运行良好。今天我尝试将此 class 更改为使用对象(建议减少额外的 class 实例化):
sealed class ScanAction {
object Continue: ScanAction()
object Stop: ScanAction()
}
我可以在我的其他 Kotlin 文件中引用这个简单的 peasy,但我现在很难在我的 Java 文件中使用它。
我尝试了以下方法,并且在 Java:
ScanAction test = ScanAction.Continue;
ScanAction test = new ScanAction.Continue();
有谁知道我现在如何引用 Java 中的实例?
您必须使用 INSTANCE
属性:
ScanAction test = ScanAction.Continue.INSTANCE;
到目前为止,我一直在使用这个密封的 Kotlin class:
sealed class ScanAction {
class Continue: ScanAction()
class Stop: ScanAction()
... /* There's more but that's not super important */
}
它在我的 Kotlin 和 Java 代码中都运行良好。今天我尝试将此 class 更改为使用对象(建议减少额外的 class 实例化):
sealed class ScanAction {
object Continue: ScanAction()
object Stop: ScanAction()
}
我可以在我的其他 Kotlin 文件中引用这个简单的 peasy,但我现在很难在我的 Java 文件中使用它。
我尝试了以下方法,并且在 Java:
ScanAction test = ScanAction.Continue;
ScanAction test = new ScanAction.Continue();
有谁知道我现在如何引用 Java 中的实例?
您必须使用 INSTANCE
属性:
ScanAction test = ScanAction.Continue.INSTANCE;