Les accesseurs et mutateurs sont auto-générés dans Kotlin. Si vous écrivez:
val isEmpty: Boolean
Il est égal au code Java suivant:
private final Boolean isEmpty;
public Boolean isEmpty() {
return isEmpty;
}
Dans votre cas, le modificateur d'accès privé est redondant - isEmpty est privé par défaut et peut être consulté que par un getter. Lorsque vous essayez d'obtenir votre objet isEmpty propriété vous appelez la méthode get dans le réel. Pour plus de compréhension de getters/setters de Kotlin: les deux exemples de code ci-dessous sont égaux:
var someProperty: String = "defaultValue"
et
var someProperty: String = "defaultValue"
get() = field
set(value) { field = value }
Aussi, je tiens à souligner qu' this
dans un getter est pas votre propriété - c'est l'instance de classe. Si vous voulez avoir accès à la valeur du champ en un getter ou un setter vous pouvez utiliser le mot réservé field
pour elle:
val isEmpty: Boolean
get() = field
Si vous souhaitez seulement avoir une méthode d'obtenir dans le public d'accès: vous pouvez écrire ce code:
var isEmpty: Boolean
private set
en raison du privé modificateur près de l'accesseur set vous pouvez définir cette valeur uniquement dans les méthodes à l'intérieur de votre objet.