Junior — Middle
Milline on klassi, mis on deklareeritud modifikaatoriga sealed, eesmärk?
sobes.tech AI
Vastus AI-lt
Klass, mis on deklareeritud modifikaatoriga sealed, on mõeldud päriluse piiramiseks. Sellisel klassil võivad olla alamklassid, kuid ainult need, mis on deklareeritud samas failis. See võimaldab kontrollida ja fikseerida päriluse hierarhiat, muutes selle prognoositavamaks ja turvalisemaks.
Näiteks Kotlinis kasutatakse sealed klasse sageli piiratud olekute või variantide kogumi esitamiseks, mis on kasulik when väljenditega töötamisel, kus kompilaator võib kontrollida kõigi variantide täielikkust.
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val error: Throwable) : Result()
}
fun handleResult(result: Result) {
when(result) {
is Result.Success -> println("Andmed: ${result.data}")
is Result.Error -> println("Viga: ${result.error.message}")
}
}