【发布时间】:2016-04-10 23:58:02
【问题描述】:
我正在尝试创建一种通过隐式类向 Scala 中的 LocalDate 对象添加天数的方法,但我不断收到错误消息,要么是“LocalDate 是最终类,不能扩展”,要么如下:
scala:73: could not find implicit value for parameter year: Int
这是我尝试使用的代码:
implicit class UVMLocalDate(val me: Int) extends AnyVal{
implicit def days(implicit year: Int, month: Int, day: Int) {
LocalDate.of(year,month,me + days)
}
}
我只能让班级表现得像这样:
(LocalDate.of(2015, 4, 14)) == (LocalDate.of(2015, 4, 12) + 2.days)
使用示例:
val dateEx = LocalDate.of(2015, 3, 23) + 2.days
assert(dateEx == LocalDate.of(2015, 3, 25))
谢谢
【问题讨论】:
-
你在使用 java.time 吗?在这种情况下,您不能将 2 个
LocalDates 加在一起。它也不提供 Scala+方法。 -
此外,您正在为“days”方法引入 3 个隐式 Int 参数,隐式参数按类型解析,因此所有 3 个参数始终具有相同的值。
-
我在粘贴的隐式类和您希望它的行为方式之间找不到太多联系。
-
请重新表述问题。提供一个使用这种新的
days方法的代码示例将非常有帮助。
标签: scala implicit-conversion implicit