Getter e setter vengono generati automaticamente in Kotlin. Se scrivi:
val isEmpty: Boolean
È uguale al seguente codice Java:
private final Boolean isEmpty;
public Boolean isEmpty() {
return isEmpty;
}
Nel tuo caso, il modificatore di accesso privato è ridondante: isEmpty è privato per impostazione predefinita ed è accessibile solo da un getter. Quando provi a ottenere la proprietà isEmpty del tuo oggetto, chiami il metodo get in real. Per una maggiore comprensione di getter / setter in Kotlin: i due esempi di codice seguenti sono uguali:
var someProperty: String = "defaultValue"
e
var someProperty: String = "defaultValue"
get() = field
set(value) { field = value }
Inoltre voglio sottolineare che this
in un getter non è tua proprietà, è l'istanza della classe. Se vuoi accedere al valore del campo in un getter o setter puoi usare la parola riservata field
per esso:
val isEmpty: Boolean
get() = field
Se vuoi solo avere un metodo get nell'accesso pubblico, puoi scrivere questo codice:
var isEmpty: Boolean
private set
a causa del modificatore privato vicino alla funzione di accesso set puoi impostare questo valore solo nei metodi all'interno del tuo oggetto.
In your case the private access modifier is redundant
Come? Il modificatore predefinito del documento di Kotlin è pubblico. kotlinlang.org/docs/reference/visibility-modifiers.html