Итак, вот ситуация. Я хочу определить класс case следующим образом:
case class A(val s: String)
и я хочу определить объект, чтобы гарантировать, что когда я создаю экземпляры класса, значение для 's' всегда имеет верхний регистр, например:
object A {
def apply(s: String) = new A(s.toUpperCase)
}
Однако это не работает, поскольку Scala жалуется, что метод apply (s: String) определяется дважды. Я понимаю, что синтаксис класса case автоматически определит его для меня, но разве нет другого способа добиться этого? Я хотел бы придерживаться класса case, так как я хочу использовать его для сопоставления с образцом.