默认情况下 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.