Junior — Middle
Quali sono i vantaggi e gli scenari di utilizzo della classe sealed in Kotlin?
sobes.tech AI
Risposta dell'AI
La classe sealed in Kotlin viene utilizzata per limitare la gerarchia di ereditarietà. Tutte le sottoclassi di una classe sealed devono essere dichiarate nello stesso file della classe sealed stessa. Questo permette al compilatore di conoscere tutte le possibili varianti di eredi, il che è utile per l'uso nelle espressioni when senza dover scrivere un ramo else.
Vantaggi:
- Sicurezza dei tipi: il compilatore verifica la completezza della gestione di tutte le varianti.
- Comodo per modellare insiemi limitati di stati o eventi.
Scenari di utilizzo:
- Implementazione di stati nel pattern "stato".
- Gestione di eventi o comandi.
- Rappresentazione di un insieme limitato di opzioni, ad esempio risposte API.
Esempio:
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val error: Throwable) : Result()
object Loading : Result()
}
fun handleResult(result: Result) {
when(result) {
is Result.Success -> println("Dati: ${result.data}")
is Result.Error -> println("Errore: ${result.error.message}")
Result.Loading -> println("Caricamento...")
}
}