Sobes.tech
Junior — Middle

Izskaidrojiet, kas ir slēgtas klases Kotlin un kā tās tiek izmantotas

sobes.tech AI

Atbilde no AI

Kotlin nav īpaša jēdziena "slēgtas klases" (closed classes) kā atsevišķa veida, bet ir līdzīga koncepcija — sealed klases (noslēgtas klases).

Sealed klase ierobežo mantošanas hierarhiju: visas šīs klases apakšklases ir jādeklarē tajā pašā failā. Tas ļauj kompilatoram zināt visas iespējamās apakšklases un izmantot tās, piemēram, when izteicienos, bez nepieciešamības rakstīt else zaru.

Sealed klases ir ērti modeļiem ierobežota variāciju kopuma, piemēram, stāvokļu vai notikumu modelēšanai.

Piemērs:

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("Dati: ${result.data}")
        is Result.Error -> println("Kļūda: ${result.error.message}")
    }
}

Ja "slēgtas klases" domātas ar private vai internal modifikatoru deklarētas klases, tad tās ir ar ierobežotu redzamības apgabalu: private — redzamas tikai faila ietvaros, internal — moduļa ietvaros.