kotlin get set

avatar
作者
猴君
阅读量:0

在 Kotlin 中,如果想实现一个类的属性可以从外部读取但不能修改,可以使用自定义的 getter 和 private setter。以下是一个示例代码:

class MyClass {     var myProperty: String         private set // 使 setter 私有化,外部无法修改         get // 默认 getter      constructor(initialValue: String) {         myProperty = initialValue     } }  fun main() {     val myObject = MyClass("Initial Value")     println(myObject.myProperty) // 可以读取属性a     // myObject.myProperty = "New Value" // 这行代码将会导致编译错误,因为 setter 是私有的 } 

在这个示例中,myProperty 的 getter 是公共的,因此可以从类的外部读取该属性。但是,setter 是私有的,因此无法从外部修改该属性。

如果需要进一步自定义 getter 或 setter,也可以这样做:

class MyClass {     var myProperty: String         private set(value) {             field = value // 自定义 setter         }         get() = field // 自定义 getter      constructor(initialValue: String) {         myProperty = initialValue     } }  fun main() {     val myObject = MyClass("Initial Value")     println(myObject.myProperty) // 可以读取属性     // myObject.myProperty = "New Value" // 这行代码将会导致编译错误,因为 setter 是私有的 } 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!