我有一个如下定义的简单特征:
trait MyTrait {
def myStringVal: String
}
Run Code Online (Sandbox Code Playgroud)
我的case类实现了这个特性如下:
case class MyCaseClass(myStringVal: String) extends MyTrait {
...
...
}
Run Code Online (Sandbox Code Playgroud)
来自Java世界,我发现有点难以理解MyCaseClass实际上只是通过定义MyCaseClass的参数来实现它.我知道你的字节代码实际上会编写getter和setter.但如果没有var或val,这怎么可能呢?
我的理解是,如果没有var或val,则不会生成getter或setter方法.在这种情况下,上面的案例类MyCaseClass如何实现myStringVal方法?
有时太多的Scala魔法难以理解,特别是遗留代码.
scala ×1