case类的Scala部分初始化

e5nszbig  于 2023-06-23  发布在  Scala
关注(0)|答案(1)|浏览(214)

我一直在基于手动初始化的case类构建一些测试。问题是,我的case类非常大-所有类型都是可选的。我想初始化它只有几个领域(其他都是空的)。这可能吗。比如说

case class Employee(Name:Option(String), Age:Option(Int), Designation:Option(String), Salary:Option(Int), ZipCode:Option(Int))
val EmployeesData = Seq( Employee("Anto",   21, "Software Engineer", 2000, 56798))
val Employee_DataFrame = EmployeesData.toDF
Employee_DataFrame.show()

将是完整的init,但我想这样做,例如,

val EmployeesData = Seq( Employee("Anto"))

或者更好的是,以某种方式对特定的键执行此操作。有什么想法吗

zazmityj

zazmityj1#

正如迪马所言:
给予每个字段一个默认值:

case class Employee(
  name: Option[String] = None,
  age: Option[Int] = None,
  ...
)

现在您可以执行以下操作:Employee().copy(name = Some("Name"))

相关问题