Versiegelte Klassen, die in Java 15 als Vorschaufunktion eingeführt und in Java 17 dauerhaft gemacht wurden, ermöglichen Entwicklern die Kontrolle, welche Klassen sie erweitern oder implementieren können. Diese Funktion ist Teil des Projekts Amber, dessen Ziel es ist, die Entwicklerproduktivität zu verbessern, indem die Java-Sprache mit kleinen, aber leistungsstarken Funktionen erweitert wird.
Versiegelte Klassen sind eine neue Art von Klasse, die einschränkt, welche anderen Klassen oder Schnittstellen sie erweitern oder implementieren können. Dies geschieht, um eine robustere und wartbarere Typhierarchie bereitzustellen. Wenn Sie eine versiegelte Klasse definieren, geben Sie eine Reihe zulässiger Unterklassen an.
Um eine versiegelte Klasse zu definieren, verwenden Sie das Schlüsselwort „sealed“ und geben die zulässigen Unterklassen mit der Permits-Klausel an. Hier ist ein Beispiel:
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 }
In diesem Beispiel ist Shape eine versiegelte Klasse und nur Kreis, Rechteck und Quadrat dürfen sie erweitern. Jede Unterklasse muss final, versiegelt oder nicht versiegelt sein.
Versiegelte Klassen können zur Modellierung hierarchischer Strukturen verwendet werden, bei denen die Menge der Unterklassen bekannt und festgelegt ist. Dies ist besonders nützlich bei der Domänenmodellierung und beim Arbeiten mit algebraischen Datentypen.
Hier ist ein Beispiel für die Verwendung versiegelter Klassen mit Mustervergleich:
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); } }
In diesem Beispiel verwenden wir einen Schalterausdruck, um verschiedene Arten von Formen zu verarbeiten. Der Compiler kann sicherstellen, dass alle möglichen Fälle abgedeckt sind, da Shape versiegelt ist.
Versiegelte Klassen sind eine leistungsstarke Ergänzung zu Java, da sie eine bessere Kontrolle über Klassenhierarchien ermöglichen und die Lesbarkeit und Wartbarkeit des Codes verbessern. Durch die Verwendung versiegelter Klassen können Sie robustere und klarer definierte Typsysteme in Ihren Java-Anwendungen erstellen.
Das obige ist der detaillierte Inhalt vonBeherrschen versiegelter Klassen in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!