假设我有一个<ul>
<li>Lorem ipsum dolor sit amet, sed do eiusmo</li>
<li>Lorem ipsum dolor sit amet, sed do eiusmo</li>
</ul>
类和两个子类
Report
然后有一个case类,其中我要使用其中一个属性(class Report {
}
class SubReport extends Report {
}
class SubReport2 extends Report {
}
来指定reportType
类型之一
SubReport
我的问题是,是否可以在其中指定一个关键字或构造
像case class SubReportClient(
reportType: Report //Using parent class
)
这样的类型作为case类的类型,它的类型检查将接受任何子类。
我曾尝试像下面那样实例化case类,但是失败了。
ChildOf(Report)
答案 0 :(得分:4)
case class SubReportClient(reportType: Report)
实际上是正确的,它将接受Report
的所有子类,仅此而已。那不是你想要的吗?
如果要访问类中的实际类型,可以将其设为通用类型:
case class SubReportClient[T <: Report)(reportType: T)
但是SubReportClient(new SubReport)
和SubReportClient(new SubReport2)
是两个不同类的实例。