【发布时间】:2018-08-09 17:15:20
【问题描述】:
假设我有如下案例类:
case class Id(id: Long)
case class Department(number: Long)
case class Employee(name: String, surname: String)
现在我想将这些类合并到一个新的类中,并在不编写另一个类的情况下创建该类型的实例:
type UberEmployee = Employee with Department with Id
val uberEmployeeInstance = new UberEmployee("Jon", "Smith", 1200, 1)
或
val uberEmployeeInstance = MagicFactory[UberEmployee]("Jon", "Smith", 1200, 1)
是否有可能通过元编程或反射在 Scala 中实现这一目标?在我的想象中,使用 mixins 的类组合对我不起作用。
【问题讨论】:
标签: scala reflection metaprogramming