However, the whole code feels weird, unidiomatic, and follows bad practices.
Not sure which resource you are following to learn the language but it is at least outdated and at most poor quality.
This would be a better way to write all that code:
enum Gender:
case Male
case Female
case Unknown
final case class Employee(name: String, id: Int, gender: Gender = Gender.Unknown)
object Main {
def main(args: Array[String]): Unit = {
val emp = Employee(
name = "John",
id = 61709,
gender = Gender.Male
)
println(emp)
}
}
Please don’t do that. Learning a language from documentation (even the official one) or tutorials is a very poor experience. As I like to say: it’s like trying to learn a foreign language purely from a dictionary.