У меня есть простая черта, как определено ниже:
trait MyTrait {
def myStringVal: String
}
Мой класс case, который реализует этот признак, выглядит следующим образом:
case class MyCaseClass(myStringVal: String) extends MyTrait {
...
...
}
Исходя из мира Java, мне трудно понять, что MyCaseClass действительно реализует это, просто определяя параметр MyCaseClass. Я понимаю, что ваш байт-код на самом деле будет писать геттер и сеттер. Но как это возможно без каких-либо var или val?
Я понимаю, что если нет var или val, то не будет создан метод getter или setter. В этом случае, как приведенный выше класс case MyCaseClass реализует метод myStringVal?
Иногда слишком много этой магии Scala трудно понять, особенно с устаревшим кодом.