Kotlin: 如何为属性设置公共 getter 但私有 setter?
你好!我刚开始学习 Kotlin,正在从 Java 过渡。在 Java 中,我习惯使用私有 setter 和公共 getter 的字段,例如:
```java
private String name;
public String getName() {
return name;
}
private void setName(String name) {
this.name = name;
}
```
但在 Kotlin 中,我看到属性 (var) 会自动生成 getter 和 setter。如果我写 `var name: String`,那么 getter 和 setter 都变成公共的。而如果使用 `val name: String`,属性是只读的——根本没有 setter。
我需要属性可以从任何地方读取(公共 getter),但只能在类内部修改其值(私有 setter)。在 Kotlin 中如何正确实现?
我尝试过写 `private var name: String`,但这样 getter 也变成私有的,无法从外部读取属性。我尝试过在 `var` 前和 `set` 内部使用不同的访问修饰符组合,但搞混了。
请告诉我如何声明一个具有公共 getter 和私有 setter 的属性。