如何使属性只能在Kotlin的类内部进行变异?

 收藏

我是编程新手,尤其是在Kotlin,如果我的问题太基础了,我感到抱歉

我需要使一个属性只能在其类内部进行更改,但是如果其他类访问该属性,则我只能获取该值,而不能更改它。

class Person {

    var name = ""

    fun changeName(newName: String) {
        name = newName
    }


}

但是如果我从其他班级访问此名称,我仍然可以更改名称。我只想获取从其他类访问的值

somePerson.name = "newNameIsNotAllowedHere"

but if I change the property to val then I am confused how to assign via method

class Person {

    val name = ""

    fun changeName(newName: String) {
        name = newName // can't assign new value because of val
    }


}

如果在Android中使用LiveData,请按照我的教程进行操作,但是我很困惑如何在普通数据类型中应用相同的行为

    private val mIsLoadingData = MutableLiveData<Boolean>()
    val isLoadingData : LiveData<Boolean>
        get() =  mIsLoadingData
回复