Код: Выделить всё
sealed interface Shape permits Rectangle, Square
record Rectangle() implements Shape
record Square() implements Shape
Начиная с JDK 21, сопоставление шаблонов для переключателя обеспечивает исчерпывающий выбор либо путем охвата всех возможных случаев, либо путем предоставления варианта по умолчанию для покрытия остальных. >
Итак, для приведенного ниже переключателя при каких обстоятельствах будет выполняться вариант по умолчанию, поскольку охватываются все возможные комбинации, и почему это вообще разрешено?
Код: Выделить всё
switch (shape) {
case Rectangle r -> // do something with r;
case Square sq -> // do something with sq;
case null -> // shape could be null
default -> // WHY is this permitted when all possible cases are covered already??
}
Подробнее здесь: https://stackoverflow.com/questions/774 ... be-invoked
Мобильная версия