Доступ к запечатанному классу 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;
Другие вопросы по тегам