Возможно ли переопределить тип 'val' в конструкторе Scala?Как переопределить параметр в конструкторе класса Scala
Учитывая такой класс, как это:
class GPPerson (id: Option[GPID], created: Option[DateTime], active: Boolean, primaryEmail: String)
Я хотел бы создать конструктор, который по сути может сделать это:
if (created == None) created = new DateTime
Другими словами, если значение None является поставки, замените его экземпляром DateTime. Уловка заключается в том, что я пытаюсь избежать использования сопутствующего объекта, а «созданный» объект должен быть «val» (не может сделать его «var»).
Почему вы избегаете использования компаньона? Это просто ... как вы это делаете. –
Сопутствующий объект будет усложнять ситуацию. Это не невозможно, но, как я сказал, «пытаюсь избежать». Это классы TableQuery в Slick, а введение сопутствующего объекта приводит к разрыву неявного разговора ... (например, метод tupled() «потерян» из-за методов apply()). Это может быть исправлено путем реализации явного tupled() BUT ... это в основном шаблон для всех наших моделей, поэтому я стараюсь держать его как можно проще. – Zac