Sobes.tech
Middle

A cosa servono le classi Future e CompletableFuture in Java?

sobes.tech AI

Risposta dell'AI

Le classi Future e CompletableFuture in Java sono progettate per lavorare con i risultati di calcoli asincroni.

  • Future rappresenta un risultato che sarà disponibile in futuro. Con Future, puoi verificare se il calcolo è terminato, ottenere il risultato (il metodo get blocca il thread se il risultato non è ancora pronto) o annullare il task.

  • CompletableFuture estende le capacità di Future, fornendo un'API comoda per comporre operazioni asincrone, gestire risultati senza blocchi, catene di chiamate e gestione delle eccezioni. Supporta metodi funzionali come thenApply, thenAccept, thenCompose e altri, facilitando la costruzione di scenari asincroni complessi.

Esempio di utilizzo di CompletableFuture:

CompletableFuture.supplyAsync(() -> {
    // Operazione lunga
    return "Risultato";
}).thenApply(result -> {
    // Elaborazione del risultato
    return result.toUpperCase();
}).thenAccept(finalResult -> {
    System.out.println(finalResult);
});