Доступ к запечатанному классу Kotlin из Java - PullRequest
0 голосов
/ 14 декабря 2018

До сих пор я использовал этот запечатанный класс 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 Ответ

0 голосов
/ 14 декабря 2018

Вы должны использовать свойство INSTANCE:

ScanAction test = ScanAction.Continue.INSTANCE;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...