Kotlin:公共获取私有集变量


125

在Kotlin中定义具有公共getter和私有(只能在内部修改的)setter的var的正确方法是什么?

Answers:


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

请参阅:属性获取器和设置器


13
请注意,private set必须在新行上。
贾斯珀·布鲁斯

29
...或在同一行上,用分号分隔:var abc: String = ""; private set
Boris B.

4
不过,我对于如何处理主要构造函数字段一无所知。
androidguy

2
@ user3175580这是不可能的。在主要构造函数中使用本地字段,然后将该值分配给属性,例如“ class Foo(_bar:String){var bar:String = _bar}
D3xter

3
@JasperBlues ...否则,您需要在之前添加分号private set
Moses Aprico


2

var name : String = "Peter"
    private set

默认情况下,所有属性和功能在Kotlin中都是公共的。因此,默认情况下,setter必须显式声明为private,而getter是公开的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.