【发布时间】:2012-05-08 00:14:26
【问题描述】:
在 Scala 中,当您声明 val 或 var 时,Scala 会在编译为字节码时自动为您生成私有字段以及 getter 和 setter。
例如
class myClass {
val name = "My Name"
}
将编译以创建等效项
class myClass {
private string name;
public string name();
public void name_$eq(string);
}
其中 name() 和 name_$eq 是私有字符串名称的 getter 和 setter。
我知道您可以通过将私有字段声明为 private[this] val/var blah 来强制它不为私有字段提供 getter 和 setter,但我需要能够创建一个不生成 getter 和编译时设置器。
这在 Scala 中是否可行?
谢谢
【问题讨论】:
-
它不会为 vals 创建 setter
标签: scala