Why "case class" doesn't need "new" to create a new object
case, class, scala
Solution
Do you want the how or the why? As the other answer notes, the how is just the `apply` method on the automatically generated companion object.
For the why: case classes are often used to implement algebraic data types in Scala, and the `new`-less constructor allows code that is more elegant (creating a value looks more like deconstructing it via pattern matching, for example) and that more closely resembles ADT syntax in other languages.
Problem
In Scala what is the reason that you don't need to use "new" to create a new "case class"? I tried searching for awhile now without answers.