ExpertiDict

Java · Avançado · Inglês · Técnico

sealed class

/siːld klæs/substantivo

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 {} // erro

Exemplos

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.

Veja também

Todos os termos de Java