在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) }