Adr*_*ian 3 scala date intellij-idea
我在这样的隐式类中有以下代码:
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)
}
}
}
Run Code Online (Sandbox Code Playgroud)
它只是不会在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)
^
Run Code Online (Sandbox Code Playgroud)
这曾经工作。我该如何解决?
看来你正在使用java.time.LocalDate
,其中LocalDate.plusDays
需要Long
,而不是一个Int
。通常,这将完美地编译,除非你们两个都这样做:1)打开-Ywarn-numeric-widen
告诉Scala编译器在扩展转换发生时向您发出警告;2)打开-Xfatal-warnings
以使警告变为错误。
您可以编写LocalDate.now().plusDays(d.toLong)
(等)以使转换明确。
归档时间: |
|
查看次数: |
1912 次 |
最近记录: |