Krolli's Blog

Alles und noch viel mehr….

Kotlin Null-Sicherheit

Wer Programmiert weis wie fehleranfällig es sein kann wenn Variablen nicht richtig initialisiert sind. Das suchen nach solchen Fehlern kann viel Zeit in Anspruch nehmen.  Auch der Erfinder des Konstrukts null (Tony Hoare) hat seine Erfindung als ‚billion-dollar mistake‚ bezeichnet.

Hier will es Kotlin besser machen und so kann der Compiler innerhalb von Kotlin NullPointerExceptions verhindern. In Kotlin müssen Typen explizit als ‚nullable‚ gekennzeichnet werden. Das Kennzeichen passiert über das hinzufügen eines Fragezeichen an den Variablentypen.

var a: String = "Hallo Welt"
a= null //Compiler-Fehler!

var a: String? = "Hallo Welt"
a = null // ok

Solange man den Type eines Wertes nicht mit ? kennzeichnet, ist es ausgeschlossen das dieser Wert jemals null wird.

var a: String = "Hallo"
var b: String? = null

var c = b.length // Wird zu einem Fehler führen

Wenn man jetzt versucht auf Methoden oder Felder eines „nullable“ Wertes zuzugreifen, wird es wie im obigen Beispiel zu einem Compiler Fehler kommen.
Man muss also zunächst sicherstellen das es nicht null ist und das kann mit einem Sicheren Aufruf erreichen werden.
Sichere Aufrufe sind durch ein Fragezeichen hinter einem Ausdruck möglich:

var c = b?.length // ok

Und wer es lieber wie in Java haben möchte und eine NullPointerExceptions haben möchte kann !! anstatt ? verwenden.

var c = b!!.length

Ich finde das Kotlin hier doch eine Mehrwert bittet und sich Fehler so schon im Vorfeld vermeiden lassen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert