我有一个案例类:
case class abc (startDate:DateTime, endDate:DateTime)
在可以访问此object
的其他case class
中,而不是访问abc.startDate or abc.endDate
,
我想要一个字符串告诉我它是开始还是结束日期。所以,
val decideStartOrEnd:String = "startDate"
现在我希望abc.startDate
使用此字符串变量decideStartOrEnd
。
感谢任何帮助。 提前谢谢。
答案 0 :(得分:1)
您可以在scala中使用使用模式匹配来获取具体对象取决于字符串。
case class abc (startDate:LocalDate, endDate:LocalDate){
def getTime(typeTime: String) : LocalDate = typeTime match {
case "startDate" => startDate
case "endDate" => endDate
case _ => throw new IllegalArgumentException("Illegal argument")
}
}
并像这样使用它
val decideStartOrEnd = "startDate"
val abe = abc(LocalDate.now(), LocalDate.now())
abe.getTime(decideStartOrEnd);
当然你可以输入:
abe getTime "startDate"