Metody pobierające i ustawiające są generowane automatycznie w Kotlinie. Jeśli napiszesz:
val isEmpty: Boolean
Odpowiada następującemu kodowi Java:
private final Boolean isEmpty;
public Boolean isEmpty() {
return isEmpty;
}
W twoim przypadku modyfikator dostępu prywatnego jest zbędny - isEmpty jest domyślnie prywatny i może być dostępny tylko przez getter. Kiedy próbujesz uzyskać właściwość isEmpty obiektu, wywołujesz metodę get w rzeczywistości. Aby lepiej zrozumieć metody pobierające / ustawiające w Kotlinie: dwie poniższe próbki kodu są równe:
var someProperty: String = "defaultValue"
i
var someProperty: String = "defaultValue"
get() = field
set(value) { field = value }
Chcę również zwrócić uwagę, że this
getter nie jest twoją własnością - jest to instancja klasy. Jeśli chcesz uzyskać dostęp do wartości pola w getterze lub setterze, możesz użyć do tego zarezerwowanego słowa field
:
val isEmpty: Boolean
get() = field
Jeśli chcesz mieć tylko metodę get w dostępie publicznym - możesz napisać ten kod:
var isEmpty: Boolean
private set
ze względu na prywatny modyfikator w pobliżu metody dostępu set możesz ustawić tę wartość tylko w metodach wewnątrz obiektu.
In your case the private access modifier is redundant
W jaki sposób? Doc Kotlin mówi, że domyślny modyfikator jest publiczny. kotlinlang.org/docs/reference/visibility-modifiers.html