Avatar ·

Wie überprüft man, ob eine lateinit-Variable in Kotlin initialisiert ist?

Hallo zusammen! Ich habe kürzlich angefangen, Kotlin zu lernen, und bin auf ein Problem bei der Verwendung von lateinit-Variablen gestoßen. \n\nIch habe eine Klasse, in der ich eine Eigenschaft mit dem Modifikator lateinit deklariere, weil ich sie nicht im Konstruktor initialisieren kann – der Wert kommt von einer externen Quelle (z. B. nach dem Laden von Daten oder dem Setzen einer Abhängigkeit durch DI). Hier ist ein vereinfachtes Beispiel:\n\n```kotlin\nclass UserManager {\n lateinit var userName: String\n \n fun loadUser() {\n // Simulation des Datenladens\n userName = "Alice"\n }\n \n fun greetUser() {\n // Hier könnte ein Fehler auftreten, wenn loadUser() noch nicht aufgerufen wurde\n println("Hallo, $userName")\n }\n}\n```\n\nDas Problem ist, dass ich einen `UninitializedPropertyAccessException` erhalte, wenn ich `greetUser()` aufrufe, bevor `loadUser()` einen Wert zugewiesen hat. Ich möchte überprüfen, ob die Variable initialisiert ist, um diesen Fehler zu vermeiden und möglicherweise eine Standardaktion auszuführen.\n\nKann mir jemand sagen, ob es in Kotlin eine Möglichkeit gibt, dies zu tun?