案例类构造函数参数默认情况下是否为公共val字段?

问题描述 投票:0回答:1

参考官方Scala文档:case-classes.html“案例类构造函数参数默认为公共val字段”

但是,.scala的反编译

case class A(i: Int)

显示下面的Java代码

private final int i; // private, not public
public int i(){ return i; }

case-classes.html中的语句是否意味着:“默认情况下,案例类构造函数参数是private val字段。”但是,自动生成的getter会将其公开。

scala case-class
1个回答
0
投票
是,从语言角度来看,case classes的构造函数参数是公共val。但是,val是不可变的,因此必须在具有公共获取器但没有设置器的类中作为私有值

实现。

© www.soinside.com 2019 - 2024. All rights reserved.