Sobes.tech
Junior — Middle

In welchen Fällen und an welchem Ort können Unterklassen deklariert werden, wenn die Klasse als sealed gekennzeichnet ist?

sobes.tech KI

Antwort von AI

In Kotlin beschränkt eine als sealed gekennzeichnete Klasse die Vererbungshierarchie: Alle Unterklassen dieser Klasse müssen in derselben Datei wie die sealed-Klasse deklariert werden. Dies ermöglicht es dem Compiler, die vollständige Menge der Erben zu kennen und sie beispielsweise in when-Ausdrücken zu verwenden, ohne eine else-Klausel schreiben zu müssen.

Das heißt, Unterklassen einer sealed-Klasse können deklariert werden:

  • In derselben Datei, in der die sealed-Klasse deklariert ist.
  • Innerhalb der sealed-Klasse selbst (verschachtelte Klassen).

Beispiel:

sealed class Result {
    class Success(val data: String) : Result()
    class Error(val error: Throwable) : Result()
}

Oder

sealed class Result

class Success(val data: String) : Result()
class Error(val error: Throwable) : Result()

Aber alle diese Unterklassen müssen sich in derselben Datei wie die sealed-Klasse befinden. Diese Einschränkung hilft, die Typsicherheit und die Vollständigkeit der Prüfungen zu gewährleisten.