Что такое sealed classes в Java?

Senior
190 просмотров
AFK Offer AI

Sealed classes (Java 17) позволяют ограничить, кто может наследовать класс. Пишешь sealed class Shape permits Circle, Rectangle {} — и только Circle и Rectangle могут наследовать Shape. Наследники должны быть final, sealed или non-sealed. Это даёт компилятору гарантию полноты — в switch по sealed-иерархии компилятор знает все варианты и не требует default. Отлично сочетается с pattern matching и records для алгебраических типов данных.

Следующий вопрос

Чем JDK Mission Control отличается от JFR?