默认情况下 case class 构造函数参数 public 是 val 字段吗?
Are case class constructor parameters public val fields by default?
参考Scala官方文档:
case-classes.html
"Case class constructor parameters are public val fields by default"
但是.scala的反编译
case class A(i: Int)
显示下面的 Java 代码
private final int i; // private, not public
public int i(){ return i; }
case-classes.html中的语句是否表示:
"Case class constructor parameters are private val fields by default."
但是,自动生成的 getter 使其成为 public.
是的,从语言的角度来看,case classes
的构造函数参数是 public val
。但是 val
是不可变的,因此它必须 实现 作为 class 中的私有值 public getter 但没有setter.
参考Scala官方文档:
case-classes.html
"Case class constructor parameters are public val fields by default"
但是.scala的反编译
case class A(i: Int)
显示下面的 Java 代码
private final int i; // private, not public
public int i(){ return i; }
case-classes.html中的语句是否表示:
"Case class constructor parameters are private val fields by default."
但是,自动生成的 getter 使其成为 public.
是的,从语言的角度来看,case classes
的构造函数参数是 public val
。但是 val
是不可变的,因此它必须 实现 作为 class 中的私有值 public getter 但没有setter.