Getter und Setter werden in Kotlin automatisch generiert. Wenn Sie schreiben:
val isEmpty: Boolean
Es entspricht dem folgenden Java-Code:
private final Boolean isEmpty;
public Boolean isEmpty() {
return isEmpty;
}
In Ihrem Fall ist der Modifikator für den privaten Zugriff redundant - isEmpty ist standardmäßig privat und kann nur von einem Getter aufgerufen werden. Wenn Sie versuchen, die isEmpty-Eigenschaft Ihres Objekts abzurufen, rufen Sie die get-Methode in real auf. Zum besseren Verständnis der Getter / Setter in Kotlin: Die beiden folgenden Codebeispiele sind gleich:
var someProperty: String = "defaultValue"
und
var someProperty: String = "defaultValue"
get() = field
set(value) { field = value }
Ich möchte auch darauf hinweisen, dass this
in einem Getter nicht Ihr Eigentum ist - es ist die Klasseninstanz. Wenn Sie in einem Getter oder Setter Zugriff auf den Feldwert erhalten möchten, können Sie das reservierte Wort field
dafür verwenden:
val isEmpty: Boolean
get() = field
Wenn Sie nur eine get-Methode für den öffentlichen Zugriff haben möchten, können Sie diesen Code schreiben:
var isEmpty: Boolean
private set
Aufgrund des privaten Modifikators in der Nähe des Set-Accessors können Sie diesen Wert nur in Methoden innerhalb Ihres Objekts festlegen.
In your case the private access modifier is redundant
Wie? Der Standardmodifikator von Kotlin Docs ist öffentlich. kotlinlang.org/docs/reference/visibility-modifiers.html