Kotlin: Громадський отримати приватний набір var


125

Який правильний спосіб визначити var у kotlin, який має публічний getter та приватний (лише внутрішньо модифікований) сеттер?

Відповіді:


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

Див.: Властивості Getter та Setter


13
Зауважте, що це private setповинно бути на новому рядку.
Джаспер Блюз

29
... або на тому ж рядку після крапки з комою:var abc: String = ""; private set
Борис Б.

4
Я все ще втрачаю те, що робити з первинним конструкторським полем.
androidguy

2
@ user3175580 Це неможливо. Використовуйте локальне поле всередині основного конструктора, а потім призначте його властивості на зразок "class Foo (_bar: String) {var bar: String = _bar}
D3xter

3
@JasperBlues ... інакше вам потрібно додати крапку з комою раніше private set.
Мойсей Абріко


2

var name : String = "Peter"
    private set

За замовчуванням у Котліні всі властивості та функції є загальнодоступними. Отже, сеттер повинен бути явно оголошений приватним, тоді як геттер за замовчуванням публічний.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.