Classes seladas, introduzidas no Java 15 como um recurso de visualização e tornadas permanentes no Java 17, permitem que os desenvolvedores controlem quais classes podem estendê-las ou implementá-las. Este recurso faz parte do Projeto Amber, que visa melhorar a produtividade do desenvolvedor, aprimorando a linguagem Java com recursos pequenos, mas poderosos.
Classes seladas são um novo tipo de classe que restringe quais outras classes ou interfaces podem estendê-las ou implementá-las. Isso é feito para fornecer uma hierarquia de tipos mais robusta e sustentável. Ao definir uma classe selada, você especifica um conjunto de subclasses permitidas.
Para definir uma classe selada, você usa a palavra-chave selada e especifica as subclasses permitidas com a cláusula permits. Aqui está um exemplo:
public sealed class Shape permits Circle, Rectangle, Square { // class body } public final class Circle extends Shape { // class body } public final class Rectangle extends Shape { // class body } public final class Square extends Shape { // class body }
Neste exemplo, Shape é uma classe selada e apenas Circle, Rectangle e Square podem estendê-la. Cada subclasse deve ser final, lacrada ou não lacrada.
Classes seladas podem ser usadas para modelar estruturas hierárquicas onde o conjunto de subclasses é conhecido e fixo. Isso é particularmente útil na modelagem de domínio e ao trabalhar com tipos de dados algébricos.
Aqui está um exemplo de uso de classes seladas com correspondência de padrões:
public class SealedClassExample { public static void main(String[] args) { Shape shape = new Circle(5); String result = switch (shape) { case Circle c -> "Circle with radius " c.radius(); case Rectangle r -> "Rectangle with width " r.width() " and height " r.height(); case Square s -> "Square with side " s.side(); }; System.out.println(result); } }
Neste exemplo, usamos uma expressão switch para lidar com diferentes tipos de Shape. O compilador pode garantir que todos os casos possíveis sejam cobertos porque o Shape está selado.
As classes seladas são uma adição poderosa ao Java, fornecendo melhor controle sobre as hierarquias de classes e melhorando a legibilidade e a manutenção do código. Usando classes seladas, você pode criar sistemas de tipos mais robustos e bem definidos em seus aplicativos Java.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3