scala - 案例类构造函数参数是否默认为公共 val 字段?
问题描述
参考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 中的语句是否意味着:
“默认情况下,案例类构造函数参数是私有 val字段。”
但是,自动生成的 getter 会将其公开。
解决方案
是的,从语言的角度来看,构造函数参数case classes
是 public 。val
但是 aval
是不可变的,因此它必须在类中实现为私有值,具有公共 getter 但没有 setter。
推荐阅读
- javascript - 如何在fancybox的内容下方放置标题/标题?
- android - 如何确保 Android APK 支持 32 位和 64 位?
- javascript - 当侦听器在文档上时,防止标签重定向
- java - 使用功能接口getter方法从类中获取字段名称的最佳策略是什么
- python - 使用来自另一个 DataFrame 中的行的值查找和替换 pandas.Dataframe 中的列标题
- javascript - 使用类与接口来提高内存和性能的成本
- c - 如何检索枚举类型变量中的元素?
- php - 如何使用 wordpress 数据库中的数据执行 IF/ELSE 语句?
- javascript - 在 Chrome 中覆盖 Cmd+Shift+[?
- javascript - 复选框被选中,即使我在外面点击