目前,我在我的 Scala 类、特征和对象 [1] 中为 public val
s、var
s 和def
s 输入类型注释——或者通过心理推断它们的类型,或者偶尔通过将鼠标悬停在 Eclipse 中的标识符上来找出什么表示编译器认为类型应该是[2]。如何方便地自动添加这些类型注释?
添加显式类型的目的是“锁定”模板的公共成员的类型,这样如果开发人员将来以导致不兼容类型的方式更改成员的定义,他们将获得一个编译时错误,除非他们也故意更改类型注释。
脚注:
[1] 除非它们覆盖超类型中的成员并且类型应该与被覆盖成员的类型相同,这通常是我的代码中覆盖的情况。
[2] 这并不总是正确的;当涉及覆盖超类型中的成员的成员时,表示编译器似乎很弱。