TGViewer
Java: fill the gaps Java: fill the gaps @java_fillthegaps · 12.3K subscribers
Post #154 5.58K
Java 15: sealed classes

В сентябре выйдет Java 15 с новой фичей: sealed classes.

Sealed
классы и интерфейсы явно определяют список наследников:
public sealed class Shape
permits Circle, Rectangle

Классы, которых нет в блоке permits, не могут наследоваться от sealed класса. Проверка идёт во время компиляции или в IDE. В Intellij IDEA уже в июле добавили поддержку sealed типов.

Плюс в java.lang.Class добавилось два метода:
🔸ClassDesc[] getPermittedSubclasses()
🔸boolean isSealed()

❓Зачем?
Глобальная цель - поддержка pattern matching. Чтобы вместо
if (s instanceof Circle) {…}
else if (s instanceof Rectangle) {…}

использовать switch:
switch (s) {
case Circle c -> …
case Rectangle r -> …

❓Где пригодятся sealed классы?
При реализации паттерна State. Раньше конечный набор состояний выражался только через enum:
enum State {NEW, VERIFIED;}

❌ Все элементы и методы хранятся вместе. Если методов много, то размер файла растёт, и читаемость снижается.
❌ Значения в конструкторе жёстко задаются на этапе компиляции.
enum State {
NEW(12);
int rating;
State(int rating) {…}
}

Теперь с помощью sealed класса:
✅ Каждое состояние в отдельном файле.
✅ Экземпляры создаются во время работы программы. Конструктор принимает параметры, а не константы.
  • 👍 2
More from @java_fillthegaps
  1. Apr 30, 2026Get Your Hands Dirty on Clean Architecture: отзыв на книгу Когда я подняла тему чистой арх…
  2. Apr 27, 2026​Clean Architecture: отзыв на книгу Наконец-то дочитала книгу Clean Architecture Роберта М…
  3. Mar 4, 2026Как переиспользовать контекст в интеграционных тестах Сегодня расскажу базовый минимум для…
  4. Mar 4, 2026Post #660
  5. Mar 4, 2026Тестовый контекст поднимается 2 минуты. У нас 4 класса с интеграционными тестами, их конфи…
  6. Feb 25, 2026Чистая архитектура. Главы 3-5 Продолжаем спидран по Clean Architecture Роберта Мартина. ⭐️…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →