我是编程新手,尤其是Kotlin,如果我的问题太基本,我很抱歉
我需要使一个属性只能在其类内进行变异,但如果其他类访问该属性,我只能获得值,但不能更改它。
class Person {
var name = ""
fun changeName(newName: String) {
name = newName
}
}
但是如果我从其他类访问这个,我仍然可以更改名称。我只想从其他类访问该值
somePerson.name = "newNameIsNotAllowedHere"
但是如果我将属性更改为val
,那么我就不知道如何通过方法进行分配
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
Pubic getter和私有setter:
class Person {
var name: String = ""
private set
}
文档:http://kotlinlang.org/docs/reference/properties.html#getters-和设置