Les getters et les setters sont générés automatiquement 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 n'est accessible que par un getter. Lorsque vous essayez d'obtenir la propriété isEmpty de votre objet, vous appelez la méthode get en réel. Pour plus de compréhension des getters / setters dans 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 }
Je tiens également à souligner que this
dans un getter n'est pas votre propriété - c'est l'instance de classe. Si vous souhaitez accéder à la valeur du champ dans un getter ou un setter, vous pouvez utiliser le mot réservé field
pour cela:
val isEmpty: Boolean
get() = field
Si vous souhaitez uniquement avoir une méthode get en accès public, vous pouvez écrire ce code:
var isEmpty: Boolean
private set
en raison du modificateur privé près de l'accesseur set, vous ne pouvez définir cette valeur que dans les méthodes de votre objet.
In your case the private access modifier is redundant
Comment? Le modificateur par défaut de Kotlin doc est public. kotlinlang.org/docs/reference/visibility-modifiers.html