Avatar ·

Was bedeutet das Ausrufezeichen in Kotlin? (Single exclamation mark)

Hallo Kollegen! Ich habe vor kurzem nach Java mit Kotlin angefangen und eine Sache verwirrt mich. An manchen Stellen im Code sehe ich ein einzelnes Ausrufezeichen nach einem Datentyp, z.B. `String!` oder `List!`. Ich verstehe, dass Kotlin strikt zwischen nullable (`String?`) und non-null (`String`) Typen unterscheidet, aber was ist `String!`? In der offiziellen Dokumentation habe ich das nicht gefunden.\n\nHier ist ein Beispiel aus meinem Projekt, wo ich eine Java-Bibliothek einbinde:\n\n```kotlin\n// Java code\npublic class JavaClass {\n public static String getString() {\n return null; // kann null zurückgeben\n }\n}\n\n// Kotlin code\nfun main() {\n val result: String! = JavaClass.getString() // IDE zeigt String!\n println(result.length) // Hier erwarte ich einen Compiler-Fehler, aber es gibt keinen\n}\n```\n\nDie IDE (IntelliJ IDEA) zeigt den Typ