Java · Avançado · Inglês · Técnico
sealed class
Classe ou interface que restringe quais tipos podem estendê-la, listados em permits. Permite hierarquias fechadas, e o compilador verifica switches completos.
Onde usar
Aparece na modelagem de resultados e estados, como Sucesso ou Erro. Com records e switch com padrões, dispensa o default em hierarquias fechadas.
Em código
sealed interface Forma
permits Circulo, Quadrado {}
record Circulo(double r) implements Forma {}
final class Quadrado implements Forma {}
// class Tri implements Forma {} // erroExemplos
Make Shape sealed so the switch has to cover every case.
Torne Shape sealed para o switch ser obrigado a cobrir todos os casos.
Only the permitted subclasses can extend a sealed class.
Só as subclasses permitidas podem estender uma sealed class.
Cuidado
Cada subclasse permitida precisa ser final, sealed ou non-sealed; esquecer isso é um erro de compilação clássico.
Sinônimos
classe selada
Origem
Do inglês sealed, selado, lacrado.