Java moderno: record, sealed e pattern matching
Java e diventato piu conciso
Per anni Java ha avuto fama di linguaggio verboso. Le versioni recenti hanno introdotto costrutti che riducono il codice boilerplate mantenendo la robustezza che ne ha decretato il successo enterprise.
Record: dati immutabili senza boilerplate
Un record definisce una classe portatrice di dati con costruttore, getter, equals, hashCode e toString generati automaticamente.
public record Punto(int x, int y) {}
var p = new Punto(3, 4);
System.out.println(p.x()); // 3
Classi sealed
Le classi sealed controllano quali tipi possono estenderle, rendendo esplicite le gerarchie chiuse e abilitando controlli esaustivi.
public sealed interface Forma permits Cerchio, Rettangolo {}
public record Cerchio(double raggio) implements Forma {}
public record Rettangolo(double base, double altezza) implements Forma {}
Pattern matching su switch
Combinando record e sealed, il pattern matching rende elegante la gestione dei casi:
double area = switch (forma) {
case Cerchio c -> Math.PI * c.raggio() * c.raggio();
case Rettangolo r -> r.base() * r.altezza();
};
Il compilatore verifica che tutti i casi siano coperti: niente piu default dimenticati.
Conclusione
Record, sealed e pattern matching avvicinano Java a uno stile piu dichiarativo. In MUSTNODE li usiamo per scrivere backend enterprise piu chiari e meno soggetti a errori.
Articoli correlati
Altri approfondimenti dalla categoria Backend & Java.
Node.js Streams per gestire grandi volumi di dati
Come usare gli stream di Node.js per elaborare file e flussi di dati di grandi dimensioni senza saturare la memoria.
Costruire API REST con Spring Boot
Dai controller alla validazione, dalla gestione degli errori alla documentazione: come strutturiamo API REST solide con Spring Boot.
PostgreSQL: indici e performance delle query
Come funzionano gli indici in PostgreSQL, quando aiutano e come usare EXPLAIN per capire perche una query e lenta.