0

我有一个案例类:

case class abc (startDate:DateTime, endDate:DateTime)

在另一个object可以访问 this的地方case class,而不是访问abc.startDate or abc.endDate,我想要一个字符串来告诉我它是开始日期还是结束日期。所以,

val decideStartOrEnd:String = "startDate"

现在我想abc.startDate使用这个字符串变量decideStartOrEnd

任何帮助表示赞赏。提前致谢。

4

1 回答 1

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"
于 2017-02-06T16:15:45.943 回答