Должны ли котлин запечатанные интерфейсы быть исчерпывающими в выражениях выключателя Java?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Должны ли котлин запечатанные интерфейсы быть исчерпывающими в выражениях выключателя Java?

Сообщение Anonymous »

Использование рисунков типа Java в выражениях переключателей с запечатанными интерфейсами Java действительно приятно: < /p>

Код: Выделить всё

sealed interface AOrB permits A,B { }
// ...
AOrB aOrB = ...;
// ...
switch (aOrB) {
case A a -> foo(a);
case B b -> bar(b);
// no default case needed, as aOrB *has to* be of type A or B
}
< /code>
К сожалению, сделав то же самое с Kotlin, кажется, невозможно: < /p>
sealed interface AorB {
data class A() : AorB
data class B() : AorB
}
Использование этого интерфейса Kotlin в выражении переключателя Java так же, как и выше, дает мне выражение ошибки компиляции 'Switch'. Не охватывает все возможные входные значения . Нужно ли мне применить некоторые уловки, чтобы сделать запечатанный интерфейс Kotlin исчерпывающим в простой старой Java? Или это ошибка в котлине?


Подробнее здесь: https://stackoverflow.com/questions/793 ... xpressions
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»