假设我有一个Report班级和两个孩子班级
class Report {
}
class SubReport extends Report {
}
class SubReport2 extends Report {
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个case类,其中reportType我要在其中一个属性()中指定一种SubReport类型
class Report {
}
class SubReport extends Report {
}
class SubReport2 extends Report {
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,是否有关键字或构造可ChildOf(Report)在case类中指定类似类型的内容,并且类型检查可以接受任何子类。
我曾尝试实例化下面的case类,但是失败了。
case class SubReportClient(
reportType: Report //Using parent class
)
Run Code Online (Sandbox Code Playgroud)
case class SubReportClient(reportType: Report)是正确的,它将接受的所有子类Report,仅此而已。那不是你想要的吗?
如果要访问类中的实际类型,可以使其通用:
case class SubReportClient[T <: Report)(reportType: T)
Run Code Online (Sandbox Code Playgroud)
不过这样一来SubReportClient(new SubReport)和SubReportClient(new SubReport2)是两个实例不同的类。
| 归档时间: |
|
| 查看次数: |
36 次 |
| 最近记录: |