我是编程新手,尤其是在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
答案 0 :(得分:0)
公共获取者和私有设置者:
class Person {
var name: String = ""
private set
}
文档:http://kotlinlang.org/docs/reference/properties.html#getters-and-setters