Les classes scellées, introduites dans Java 15 en tant que fonctionnalité d'aperçu et rendues permanentes dans Java 17, permettent aux développeurs de contrôler quelles classes peuvent les étendre ou les implémenter. Cette fonctionnalité fait partie du projet Amber, qui vise à améliorer la productivité des développeurs en améliorant le langage Java avec des fonctionnalités petites mais puissantes.
Les classes scellées sont un nouveau type de classe qui restreint les autres classes ou interfaces qui peuvent les étendre ou les implémenter. Ceci est fait pour fournir une hiérarchie de types plus robuste et maintenable. Lorsque vous définissez une classe scellée, vous spécifiez un ensemble de sous-classes autorisées.
Pour définir une classe scellée, vous utilisez le mot-clé scellé et spécifiez les sous-classes autorisées avec la clause permits. Voici un exemple :
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 }
Dans cet exemple, Shape est une classe scellée et seuls Circle, Rectangle et Square sont autorisés à l'étendre. Chaque sous-classe doit être définitive, scellée ou non scellée.
Les classes scellées peuvent être utilisées pour modéliser des structures hiérarchiques où l'ensemble des sous-classes est connu et fixe. Ceci est particulièrement utile dans la modélisation de domaine et lorsque vous travaillez avec des types de données algébriques.
Voici un exemple d'utilisation de classes scellées avec correspondance de modèles :
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); } }
Dans cet exemple, nous utilisons une expression switch pour gérer différents types de Shape. Le compilateur peut garantir que tous les cas possibles sont couverts car Shape est scellé.
Les classes scellées constituent un ajout puissant à Java, offrant un meilleur contrôle sur les hiérarchies de classes et améliorant la lisibilité et la maintenabilité du code. En utilisant des classes scellées, vous pouvez créer des systèmes de types plus robustes et bien définis dans vos applications Java.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3