Nehmen Sie Muster in Java ohne Instanz oder Schalter auf
Posted: 30 Apr 2025, 18:52
Java 21 Rekordmuster verspricht die Einführung von Zerstörungen in die Java -Sprache. Es scheint jedoch eng mit dem Musteranpassung gekoppelt zu sein, der nur als Teil des Vergleichs von oder in Switch Anweisungen/Ausdrücke verwendet werden kann.
Betrachten Sie den folgenden Datensatz.
Gibt es eine Möglichkeit, ein Objekt dieses bestimmten Typs zu zerstören, ohne Instanz von oder Switch zu verwenden? Die folgenden Versuche machen Destructure Point . Der Code ist jedoch wenig sinnvoll, da weder Instanzen von noch Switch erforderlich sind, wenn wir Null-Safety annehmen.
Betrachten Sie den folgenden Datensatz.
Code: Select all
public record Point(int x, int y) {}
Code: Select all
Point point = new Point(0, 0);
// destructuring with instanceof
if (point instanceof Point(int x, int y)) {
System.out.printf("Point at (%d,%d)", x, y);
}
// destructuring with switch
switch (point) {
case Point(int x, int y) -> System.out.printf("Point at (%d,%d)", x, y);
}