Kotlin: Public get private set var


125

Qual è il modo corretto per definire una variabile in kotlin che ha un getter pubblico e un setter privato (modificabile solo internamente)?

Risposte:


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

Vedi: Proprietà Getter e Setter


13
Nota che private setdeve essere su una nuova riga.
Jasper Blues

29
... o sulla stessa riga, dopo un punto e virgola:var abc: String = ""; private set
Boris B.

4
Tuttavia, non so cosa fare con un campo costruttore primario.
androidguy

2
@ user3175580 Questo non è possibile. Utilizza un campo locale all'interno del costruttore principale e quindi assegna il valore alla proprietà come "class Foo (_bar: String) {var bar: String = _bar}
D3xter

3
@JasperBlues ... altrimenti, devi aggiungere il punto e virgola prima private set.
Moses Aprico


2

var name : String = "Peter"
    private set

Per impostazione predefinita, tutte le proprietà e le funzioni sono pubbliche in Kotlin. Quindi il setter deve essere dichiarato esplicitamente privato mentre il getter è pubblico per impostazione predefinita.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.