[英]How to match Dataframe column names to Scala case class attributes?
[英]How to patten match on just the class, not the class attributes in Scala?
我有一些有時具有許多屬性的類,這些類非常大,所以我不想將其轉換為case類。
但是,我仍然希望能夠對類類型進行模式匹配。
我一直在做以下事情:
object CourseSemester {
implicit val courseSemesterCase = (entity: CourseSemester)
=> { CourseSemesterCase(entity) }
case class CourseSemesterCase(entity: CourseSemester)
}
import CourseSemester._
class CourseSemester(val courses: List[Course],
val startDate: EventDate,
val endDate: EventDate,
val createdUpdatedBy: CreatedUpdatedBy,
... there are so many attributes... ) {
def totalCoursesInSemester: Int = courses.length
}
這使我可以在CourseSemester上與案例類進行匹配,因此我可以在模式匹配中識別類類型。 例如:
val c = new CourseSemester(...)
c match {
case CourseSemesterCase(a) => { }
case SomeOtherCase(b) => { }
}
這是一種合理的方法,還是有更好的方法?
您可以使用Type Ascription
c match {
case cs : CourseSemester => // use cs
case s : SomeOther => // s is object of SomeOther type
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.