kotlin - Kotlin:私有 get 和 public set 的属性有意义吗?
问题描述
我是 Kotlin 的新手,我一直在尝试这种语言。在Kotlin in Action 中,它说如下:
默认情况下,访问器的可见性与属性的可见性相同。但是,如果需要,您可以通过在 get 或 set 关键字之前放置可见性修饰符来更改此设置。
我试图创建一个具有私有 getter 和公共 setter 的属性,如下所示:
class BackingField {
var aProperty = 1
private get
set(value) {
field = value + 1
}
}
但是,IntelliJ 建议我删除private
之前的修饰符get
。是否有可能拥有带有私有 getter 和公共 setter 的公共财产?如果是这样,这种实体的一些常见应用是什么?如果不是,我们是否可以断定书中所说的部分是错误的?
解决方案
这本书本身没有错。因为您实际上可以更改 get 和 set 的可见性,但根据这个问题 ,set 不能比 get 更可见: Private getter and public setter for a Kotlin property
推荐阅读
- perl - 为什么有些变量需要初始化而有些变量不需要在同一个脚本中?
- sql - 具有组合或单个实体的多列的非聚集索引
- excel - Loadpicture 给出运行时错误 481:无效图片在恢复前工作正常
- python - 不和谐派表情符号
- python - 如何循环一个turtle.write 语句?
- python-3.x - 字典值未更新
- python - 使用 Python 代码求解简单的 sigma-Algebra(概率中也称为 Borel 场)
- c - 在 C 中的方法名称上有一个星号是什么意思?
- c++ - For循环:打印结果最高的汽车名称。如果相等,取第一个
- swift - 我不能在点后显示两位数,例如 0.3、0.4