Kotlin: Public get private set var


126

Quelle est la bonne façon de définir une variable dans kotlin qui a un getter public et un setter privé (uniquement modifiable en interne)?

Réponses:


194
var setterVisibility: String = "abc" // Initializer required, not a nullable type
    private set // the setter is private and has the default implementation

Voir: Propriétés Getter et Setter


13
Notez que private setdoit être sur une nouvelle ligne.
Jasper Blues

30
... ou sur la même ligne, après un point-virgule:var abc: String = ""; private set
Boris B.

4
Je ne sais pas quoi faire avec un champ de constructeur principal.
androidguy

2
@ user3175580 Ce n'est pas possible. Utilisez un champ local à l'intérieur du constructeur principal, puis attribuez la valeur à la propriété comme "class Foo (_bar: String) {var bar: String = _bar}
D3xter

3
@JasperBlues ... sinon, vous devez ajouter un point-virgule avant private set.
Moses Aprico


3

var name : String = "Peter"
    private set

Par défaut, toutes les propriétés et fonctions sont publiques dans Kotlin. Par conséquent, le setter doit être explicitement déclaré privé tandis que le getter est public par défaut.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.