我需要像这样创建一个数据类
data class Cat(var toys:Int=3, val type:String):Animal(){
...
}
动物是具有眼睛和腿等区域的抽象类。
我不希望来电者能够直接放置玩具。但我希望能够对
之类的玩具做一些工作fun addQuota(){toys+=4}
我该如何干净地完成它?我仍然想要一个公共的获取器,一个私有的设置器,但是我不希望变量是最终的。而且,此数据类是Room的实体。
答案 0 :(得分:2)
您可以通过使用构造函数的属性作为ax2.set_ylim(ax1.get_ylim()
属性的后备字段来做到这一点:
toys
我希望这可以与房间配合使用。
来源https://discuss.kotlinlang.org/t/private-setter-for-var-in-primary-constructor/3640/10
答案 1 :(得分:0)
结果证明以下作品:
data class Cat(private var toys:Int=3, val type:String):Animal(){
...
fun getToys()=toys
}
答案 2 :(得分:0)
我看到您已经找到了使您满意的解决方案,但也许您可以考虑以下解决方案:
class Cat(toys: Int = 3, val type: String) : Animal() {
var toys = toys
private set
fun addQuota() {
toys += 4
}
}