Kotlin: Public get private set var


126

Jaki jest prawidłowy sposób definiowania zmiennej w kotlinie, która ma publiczny getter i prywatny (tylko wewnętrznie modyfikowalny) ustawiacz?

Odpowiedzi:


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

Zobacz: Właściwości Getter i Setter


13
Zauważ, że private setmusi znajdować się w nowej linii.
Jasper Blues

30
... lub w tym samym wierszu, po średniku:var abc: String = ""; private set
Boris B.

4
Nie wiem jednak, co zrobić z głównym polem konstruktora.
androidguy

2
@ user3175580 To nie jest możliwe. Użyj lokalnego pola wewnątrz głównego konstruktora, a następnie przypisz wartość do właściwości, np. „Class Foo (_bar: String) {var bar: String = _bar}
D3xter

3
@JasperBlues ... w przeciwnym razie musisz wcześniej dodać średnik private set.
Moses Aprico


3

var name : String = "Peter"
    private set

Domyślnie wszystkie właściwości i funkcje są publiczne w Kotlinie. Dlatego ustawiający musi być jawnie zadeklarowany jako prywatny, podczas gdy pobierający jest domyślnie publiczny.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.