Die Eigenschaft muss initialisiert oder abstrakt sein
Muss es sein, dumme Frage, aber ich bin wirklich neu auf Kotlin und ich fand keine Lösung.
Wie erklären Klasse Feld? Wie können wir es in java:
protected SharedPreferences mSharedPreferences;
Später in onCreate()
:
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
Nun kann ich es benutzen und wo ich es will (in den Unterklassen dieser Basis-Aktivität).
Ich versuche zu tun, gleich in Kotlin:
protected var sharedPreferences : SharedPreferences
Und in onCreate()
:
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
Aber ich bekomme eine Warnung: "Eigentum muss initialisiert werden, oder Abstrakt sein"
InformationsquelleAutor der Frage Anton Shkurenko | 2015-11-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, initialisieren Sie eine Immobilie außerhalb des Konstruktors, dann spät initialisiert Eigenschaften ist, was Sie möglicherweise suchen. Deklarieren Sie die Eigenschaft mit der
lateinit
modifier, die es erlauben, überspringen Sie die sonst erforderliche Initialisierung und wird die Eigenschaft Zugriff fehlschlagen, mit der Ausnahme, bis einige sinnvollen Wert zugewiesen werden:InformationsquelleAutor der Antwort Alexander Udalov