Kotlin: Public Get Private Set Var


125

Was ist der richtige Weg, um eine Variable in Kotlin zu definieren, die einen öffentlichen Getter und einen privaten (nur intern modifizierbaren) Setter hat?

Antworten:


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

Siehe: Eigenschaften Getter und Setter


13
Beachten Sie, dass private setdies in einer neuen Zeile stehen muss.
Jasper Blues

29
... oder in derselben Zeile nach einem Semikolon:var abc: String = ""; private set
Boris B.

4
Ich weiß jedoch nicht, was ich mit einem primären Konstruktorfeld anfangen soll.
AndroidGy

2
@ user3175580 Dies ist nicht möglich. Verwenden Sie ein lokales Feld im primären Konstruktor und weisen Sie den Wert der Eigenschaft wie "Klasse Foo (_bar: String) {var bar: String = _bar}
D3xter

3
@JasperBlues ... andernfalls müssen Sie vorher ein Semikolon hinzufügen private set.
Moses Aprico


2

var name : String = "Peter"
    private set

Standardmäßig sind alle Eigenschaften und Funktionen in Kotlin öffentlich. Daher muss der Setter explizit als privat deklariert werden, während der Getter standardmäßig öffentlich ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.