Kotlin: Public get private set var


126

Qual é a maneira correta de definir um var no kotlin que tem um getter público e um setter privado (apenas modificável internamente)?

Respostas:


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

Veja: Propriedades Getter e Setter


13
Observe que private setdeve estar em uma nova linha.
Jasper Blues

30
... ou na mesma linha, após um ponto e vírgula:var abc: String = ""; private set
Boris B.

4
No entanto, estou sem saber o que fazer com um campo de construtor primário.
androidguy

2
@ user3175580 Isso não é possível. Use um campo local dentro do construtor primário e atribua o valor à propriedade como "class Foo (_bar: String) {var bar: String = _bar}
D3xter

3
@JasperBlues ... caso contrário, você precisa adicionar ponto-e-vírgula antes private set.
Moses Aprico


3

var name : String = "Peter"
    private set

Por padrão, todas as propriedades e funções são públicas no Kotlin. Portanto, o setter deve ser explicitamente declarado privado, enquanto o getter é público por padrão.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.