我在这样的隐式类中有这个代码:
object TenorOperations {
implicit class TenorOperations(thiss: Tenor) {
def toDate: LocalDate = thiss match {
case Day(d) => LocalDate.now().plusDays(d)
case Month(m) => LocalDate.now().plusMonths(m)
case Year(y) => LocalDate.now().plusYears(y)
case errorDate => throw new Exception("Unexpected date: "+errorDate)
}
}
}
它不会在IDEA中编译。
Error:(14, 47) implicit numeric widening
case Day(d) => LocalDate.now().plusDays(d)
^
Error:(15, 51) implicit numeric widening
case Month(m) => LocalDate.now().plusMonths(m)
^
Error:(16, 49) implicit numeric widening
case Year(y) => LocalDate.now().plusYears(y)
^
这曾经工作过。我该如何解决?
答案 0 :(得分:5)
您似乎正在使用CustomRepository
,其中/api/entity
占用java.time.LocalDate
,而不是LocalDate.plusDays
。通常,这将很好地编译,除非你们都打开Long
告诉Scala编译器在扩大转换时发出警告; 2)打开Int
以警告错误。
您可以编写-Ywarn-numeric-widen
(等)以明确转化。
答案 1 :(得分:1)
我不确定为什么会这样,但您可以尝试LocalDate.now().plusMonths(Period.months(m))
(相同的日期和年份)。