Я рассмотрел все подклассы запечатанного класса в выражении переключателя, но компилятор Java по-прежнему утверждает, чтJAVA

Программисты JAVA общаются здесь
Anonymous
Я рассмотрел все подклассы запечатанного класса в выражении переключателя, но компилятор Java по-прежнему утверждает, чт

Сообщение Anonymous »

Предположим, что структура:

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

sealed class Shape permits Circle, Quadrangle {}

sealed class Quadrangle extends Shape permits Diamond, Rectangle { }
final class Rectangle extends Quadrangle {}
final class Diamond extends Quadrangle {}
final class Circle extends Shape {}
Затем, когда я, например, такой оператор переключения:

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

switch (shape) {
case Rectangle _-> System.out.println("");
case Diamond _-> System.out.println("");
case Circle _-> System.out.println("");
}
У меня есть информация о том, что я не охватываю все случаи и вынужден реализовать значение по умолчанию. По-моему, это какой-то баг или что-то в этом роде. Так не должно быть. Я рассмотрел все случаи.
Есть ли способ добиться полноты оператора switch, и если да, то как?

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