在kotlin中,如何使主构造函数的setter属性为private?

在kotlin中,如何使主构造函数的setter属性为private?

class City(val id: String, var name: String, var description: String = "") { fun update(name: String, description: String? = "") { this.name = name this.description = description ?: this.description } } 

我想让属性name的setter是私有的,而且它的getter是公开的,我该怎么办?

解决方案是在构造函数之外创建一个属性并设置setter的可见性。

 class Sample(var id: Int, name: String) { var name: String = name private set } 

你可以试试这个

 class Sample(var id: Int, private var name:String) { // Backing field var _name: String = "" get() = name private set } fun main(args: Array) { println("Hello World") val sample = Sample(1, "hello") // println(sample.name); It's not possible println(sample._name) }