Как модификатор sealed class помогает с сопоставлением с образцом в Java? - PullRequest
0 голосов
/ 18 июня 2020

Последний Java релиз 15 предлагает новую функциональность - модификатор sealed. Я выбрал JEP , и он говорит:

Запечатанные классы и интерфейсы ограничивают, какие другие классы или интерфейсы могут их расширять или реализовывать.

Цели:

  • Разрешить автору класса или интерфейса контролировать, какой код отвечает за его реализацию.
  • Обеспечивает более декларативный способ, чем модификаторы доступа, для ограничения использования суперкласса.
  • Поддерживать будущие направления в сопоставлении с образцом, подкрепляя исчерпывающий анализ образцов.

Первое и второе довольно просты, но третьему вряд ли можно следовать. Не могли бы кто-нибудь объяснить, пожалуйста, как sealed поможет с pattern matching?

Спасибо

1 Ответ

1 голос
/ 18 июня 2020

Создание класса sealed означает, что компилятор знает полный список классов реализации во время компиляции. Следовательно, он может подтвердить, что (например) все возможные совпадения были обработаны.

Считайте это похожим на проверенные исключения: во время компиляции компилятор гарантирует, что каждое проверенное исключение, которое может быть создано, каким-то образом обрабатывается (либо путем перехвата или с помощью предложения throws), поэтому гарантируется, что управление потоком будет формально согласованным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...