Каждый класс в Scala должен иметь хотя бы один раздел неявных параметров.Если вы не включите его, компилятор добавит его для вас.
scala> class X
defined class X
scala> new X()
res4: X = X@68003589
scala> class Y
defined class Y
scala> new Y()
res5: Y = Y@467f788b
Классы Case не являются исключением.Но взаимодействие с сопоставлением с образцом является источником путаницы и ошибок, которые мотивируют устаревание.
scala> case class A
<console>:1: warning: case classes without a parameter list have been deprecated;
use either case objects or case classes with `()' as parameter list.
case class A
^
defined class A
scala> val a = A()
a: A = A()
scala> (a: Any) match { case A => 1; case _ => 2 }
res0: Int = 2
scala> val companion = A
companion: A.type = A
scala> (companion: Any) match { case A => 1; case _ => 2 }
res0: Int = 1
Как предполагает Дин, обычно лучше смоделировать это с объектом case.
IЯ не знаю о временной шкале для удаления поддержки классов случаев со списком пустых параметров.Наследование классов дел было почти удалено в 2.9.0, но это было отложено до следующего основного выпуска.
Дополнительная литература:
Почему первый список параметров класса не может быть неявным?