7

Let's assume we have a sealed trait and some case class inheriting it:

  sealed trait SomeTrait
  final case class ClassA(somevalue : Int) extends SomeTrait
  final case class ClassB(str : String) extends SomeTrait
  (...)

Now I want to get all of these case classes extending the trait as a collection. How would I go on about that? In what kind of type would I even need to reference the classes? weakTypeTag? Something else?

In a general sense, this is similar to Travis Brown's answer here about doing the same with case objects.

My application context: I have a HTTP server and a given file of case classes inheriting a single sealed trait (to be more exact: this hierarchy implements the Command Design Pattern). Now I want to automatically create an endpoint for a HTTP-POST per case class and parse incoming data via upickle to the case class corresponding to that endpoint. Programmatrically I do not need the classes / types for anything other.

Community
  • 1
  • 1
5-to-9
  • 649
  • 8
  • 16

0 Answers0