Доступ к запечатанному классу Kotlin из Java
До сих пор я использовал этот закрытый класс 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()
}
Я могу сослаться на этот простой peasy в других моих файлах Kotlin, но сейчас я пытаюсь использовать его в моих файлах Java.
Я пробовал следующее, и оба из этих ошибок компиляции отката при попытке сделать ссылку в Java:
ScanAction test = ScanAction.Continue;
ScanAction test = new ScanAction.Continue();
Кто-нибудь знает, как я могу ссылаться на экземпляр в Java сейчас?
1 ответ
Решение
Вы должны использовать INSTANCE
имущество:
ScanAction test = ScanAction.Continue.INSTANCE;