HAVE WE FOUND THE HOLY ENUM?
summary
Scala 2's built-in Enumeration lacks custom fields and compile-time exhaustiveness and only offers unsafe name lookup, while sealed ADTs add parameters and exhaustiveness but force manual values and lookup boilerplate. Adding Enumeratum buys generated implementations via findValues macro so lookup and listing work. Scala 3's new enum keyword natively supports constructor parameters, methods, exhaustiveness, values and valueOf (unsafe); a companion adds a safe Option-based lookup, and enums can interoperate with Java by extending java.lang.Enum.
AI-written summary · about
chapters (7)
- 0:00Scala enums journey
- 1:47Scala 2 enum limits
- 8:07ADTs for enums in Scala 2
- 14:55Enumeratum in Scala 2
- 17:45Scala 3 enum features
- 24:40Java interop in Scala 3 enums
- 27:26Enum evolution summary & Q&A








