java / expert
Snippet
Nested Record Patterns zur Datenextraktion
Record Patterns (Java 21) ermöglichen die tiefe Dekonstruktion komplexer Datenstrukturen direkt innerhalb von 'instanceof'- oder 'switch'-Anweisungen. Dies eliminiert Boilerplate-Casts und Accessor-Aufrufe, wodurch der Code deklarativer und weniger fehleranfällig wird.
snippet.java
1
2
3
4
5
6
7
8
public record Customer(String name, String email) {}public record Order(Customer customer, double total) {}void printOrderInfo(Object obj) {if (obj instanceof Order(Customer(var name, var email), var total)) {System.out.printf("Customer %s (%s) spent %.2f%n", name, email, total);}}
Erklärung
1
if (obj instanceof Order(Customer(var name, var email), var total))
Prüft das Objekt gegen eine geschachtelte Record-Struktur und extrahiert Felder in lokale Variablen.
2
System.out.printf("Customer %s...", name, email, total);
Verwendet die extrahierten Variablen direkt, ohne .customer() oder .name() aufzurufen.