假设我有一个Report
类和两个子类
class Report {
}
class SubReport extends Report {
}
class SubReport2 extends Report {
}
然后我有一个SubReport
类,在其中一个属性(reportType
)中,我想用来指定一个case类型
case class SubReportClient(
reportType: Report //Using parent class
)
我的问题是,有没有一个关键字或构造可以指定像ChildOf(Report)
这样的东西作为case类中的类型,并且它会让类型检查接受任何子类。
我尝试过像下面这样实例化case类,但失败了。
SubReportClient(
classOf[SubReport]
)
发布于 2019-06-04 02:56:11
case class SubReportClient(reportType: Report)
实际上是正确的,它将接受Report
的所有子类,而不接受其他任何子类。这不是你想要的吗?
如果你想访问类中的实际类型,你可以让它泛型:
case class SubReportClient[T <: Report)(reportType: T)
但是这样,SubReportClient(new SubReport)
和SubReportClient(new SubReport2)
是两个不同类的实例。
https://stackoverflow.com/questions/56432876
复制相似问题