2015-12-17 19 views

Antwort

70

Dies ist unsicher NULL festlegbaren Typ (T?) Umwandlung in einen nicht-NULL festlegbaren Typ (T). Es wird NullPointerException geworfen, wenn der Wert null ist.

Es ist dokumentiert here zusammen mit Kotlin Mittel der Null-Sicherheit.

+0

was bedeutet es, wenn die '' !! ist am Ende einer Aussage? IJ Auto-Konvertierung nach Kotlin tat das für mich 'val Preis = sale.latest !!' – ycomp

+1

@ycomp, es bedeutet, dass 'sale.latest' kann' null' enthalten; Die Zuweisung wird nur dann erfolgreich sein, wenn "sale.latest" nicht null ist und andernfalls NPE auslöst. Dies gibt Null-Sicherheit für "val price": sein Typ ist nicht null. Siehe https://kotlinlang.org/docs/reference/null-safety.html – hotkey

22

Hier ist ein Beispiel, um die Dinge klarer zu machen. Sagen Sie bitte diese Funktion

fun main(args: Array<String>) { 
    var email: String; 
    email = null 
    println(email); 
} 

haben Dies wird die folgende Zusammenstellung Fehler.

Null can not be a value of a non-null type String 

Jetzt können Sie das verhindern, indem ein Fragezeichen auf den String Typ Hinzufügen es nullable zu machen.

So haben wir

fun main(args: Array<String>) { 
    var email: String?; 
    email = null 
    println(email); 
} 

Diese

null

nun ein Ergebnis erzeugt, wenn wir die Funktion wollen eine Ausnahme ausgelöst, wenn der Wert von E-Mail-null ist, können wir zwei hinzufügen Ausrufe am Ende der E-Mail. Gefallen Sie diesen

fun main(args: Array<String>) { 
    var email: String?; 
    email = null 
    println(email!!); 
} 

Dies wirft ein KotlinNullPointerException