Ich habe ein Java ein wenig wie so Datei:Benutzerdefinierte Getter für Eigenschaften von Typparametern
public class Thing {
private String property;
public Thing(String property) {
this.property = property;
}
public String getProperty() {
if (property == null) {
return "blah blah blah";
} else {
return property;
}
}
}
Offensichtlich gibt zu meiner eigentlichen Klasse mehr ist, aber die oben ist nur ein Beispiel.
Ich möchte dies in Kotlin schreiben, also begann ich dies mit:
class Thing(val property: String?)
Dann habe ich versucht, die benutzerdefinierte Getter mit the official documentation und another Kotlin question als Referenz zu implementieren, wie folgt aus:
class Thing(property: String?) {
val property: String? = property
get() = property ?: "blah blah blah"
}
Allerdings markiert meine IDE (Android Studio) die zweite property
in der 3. Zeile des obigen Codes in rot und gibt mir die Nachricht:
Initializer ist hier nicht erlaubt, da die Eigenschaft keine dahinter liegende Feld hat
Warum bin ich diesen Fehler, und wie würde ich in der Lage sein, diese benutzerdefinierten Getter zu schreiben, wie oben beschrieben?
Danke für Ihre Antwort. Ich weiß nicht, wie ich das vergessen habe ... –