kotlin 自定义setter

Posted zhangjin1120

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kotlin 自定义setter相关的知识,希望对你有一定的参考价值。

先看下自定义setter怎么写:

    var name: String = ""
        set(value) 
            setEnglishName(value) //设置name值时,也创建enName
            field = value
        

测试一下:

fun main() 
    var test = SetterTest()
    println(test)
    test.name = "bella"
    println(test)


class SetterTest 
    var name: String = ""
        set(value) 
            setEnglishName(value) //设置name值时,也创建enName
            field = value
        

    var isGirl: Boolean = false
    var enName = ""
    fun setEnglishName(parm: String) 
        enName = parm
    

    override fun toString(): String 
        return "SetterTest(name='$name', isGirl=$isGirl, enName='$enName')"
    

    init 
        name = "Linda"
        isGirl = true
    

运行结果:

自定义的setter什么时候被调用?

只要变量被赋值,就会自动调用setter。上面的代码,在initname = "Linda" ,就会调用name的setter;之后test.name = "bella",也会调用setter。

以上是关于kotlin 自定义setter的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin类的初始化 ① ( 成员属性 | Kotlin 自动为成员字段生成 getter 和 setter 方法 | 手动设置成员的 getter 和 setter 方法 | 计算属性 )

Kotlin自定义的getter和mutable list。

Kotlin Class基础

kotlin getter 和 setter 期望成员声明错误?

自定义类的 getter 和 setter

kotlin的属性初始器与属性Setter