Спасибо за меня поняли, я хотел бы поделиться своим пониманием,
trait PreridA
- это ничего, но интерфейс не имеют 4 метода GET.
case class PeriodEntity extends PeriodA
- PeriodEntity должен иметь 4 метода получения, как указано в PeriodA. Если вы удалите любую запись в PeriodEntity, вы получите исключение компиляции. Простыми словами, это похоже на класс, реализующий интерфейс.
У меня есть решение для такого рода недоразумений. Для этого у вас должны быть базовые знания Java.
- Положите код, который вы не поняли, в отдельный новый класс Scala.
- Не делайте это компиляцией.
- Если необходимо, перестроить проект, то он создаст файлы .class в целевом объекте.
- Используйте любой декомпилятор jd-GUI или еще.
Или, CD < ..> \ цель \-2.11 Скала \ Классы Run
javap пакет.Employee
Вы увидите код java на консоли.
1,2 шага необходимо, только если вы работаете в проектах реального времени, фактический код проекта включает в себя множество логики. Если вы чувствуете, что можете понять, тогда вы можете опустить 1 и 2 шага.
Итак, вы можете легко понять, что именно означает ваш код Scala.
Это выглядит большой процедурой, но это не займет много времени. И заставьте его понять себя, а не объяснить кому-то.
У вас есть опыт работы на другом языке OO, например Java, C++, ...? –
Возможный дубликат [Понимание класса и черт класса в Scala] (http://stackoverflow.com/questions/22769175/understanding-case-class-and-traits-in-scala) –
Попробуйте выполнить поиск в stackoverflow для примеров с примерами классов простирающиеся черты. Есть много подробных ответов. –