Las clases selladas, introducidas en Java 15 como una característica de vista previa y permanentes en Java 17, permiten a los desarrolladores controlar qué clases pueden extenderlas o implementarlas. Esta función es parte del Proyecto Amber, cuyo objetivo es mejorar la productividad de los desarrolladores mejorando el lenguaje Java con funciones pequeñas pero potentes.
Las clases selladas son un nuevo tipo de clase que restringe qué otras clases o interfaces pueden extenderlas o implementarlas. Esto se hace para proporcionar una jerarquía de tipos más sólida y fácil de mantener. Cuando defines una clase sellada, especificas un conjunto de subclases permitidas.
Para definir una clase sellada, utiliza la palabra clave sellada y especifica las subclases permitidas con la cláusula de permisos. Aquí tienes un ejemplo:
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 }
En este ejemplo, Forma es una clase sellada y solo Círculo, Rectángulo y Cuadrado pueden extenderla. Cada subclase debe ser final, sellada o no sellada.
Las clases selladas se pueden utilizar para modelar estructuras jerárquicas donde el conjunto de subclases es conocido y fijo. Esto es particularmente útil en el modelado de dominios y cuando se trabaja con tipos de datos algebraicos.
Aquí hay un ejemplo del uso de clases selladas con coincidencia de patrones:
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); } }
En este ejemplo, usamos una expresión de cambio para manejar diferentes tipos de Forma. El compilador puede garantizar que todos los casos posibles estén cubiertos porque Shape está sellado.
Las clases selladas son una poderosa adición a Java, ya que brindan un mejor control sobre las jerarquías de clases y mejoran la legibilidad y el mantenimiento del código. Al utilizar clases selladas, puede crear sistemas de tipos más sólidos y mejor definidos en sus aplicaciones Java.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3