Sobes.tech
Junior — Middle

Je možné inicializovat objekt třídy sealed v Kotlinu?

sobes.tech AI

Odpověď od AI

V Kotlinu je sealed třída třída s omezeným počtem potomků, definovaná ve stejném souboru. Sama sealed třída je obvykle abstraktní a nelze ji přímo inicializovat.

Lze inicializovat pouze její podtřídy, které konkrétně implementují sealed třídu. Například:

sealed class Result {
    data class Success(val data: String) : Result()
    object Failure : Result()
}

val result1: Result = Result.Success("OK")
val result2: Result = Result.Failure

Tímto způsobem nelze přímo vytvořit objekt sealed třídy, ale lze vytvořit objekty jejích podtříd.