初始问题:
在Scala中,我想使用隐式 Ordering[T]#Ops
比较两个LocalDate
.
它只是使用像 >
这样的“运算符”而不是isAfter
.
它应该只是一个导入:import scala.math.Ordering.Implicits._
检查:
看起来它适用于 LocalTime
并且不与 LocalDate
因为LocalTime
而不是LocalDate
实现Comparable<LocalTime>
.
问题:
我想知道,
为什么LocalDate
实现Comparable<ChronoLocalDate>
而不是Comparable<LocalDate>
?
最佳答案
LocalDate
事实上implements Comparable<ChronoLocalDate>
以及 ChronoLocalDate
通过实现这两个,它的每个实例当然都可以与另一个实例相比较 LocalDate
实例。
您可以查看JavaDocs for LocalDate
在 Oracle 网站上。
ChronoLocalDate
是一个由不同类型的日历实现的接口(interface),以便使它们相互比较。那是因为有 JapaneseDate
, ThaiBuddhistDate
, HijrahDate
并且至少还有一个。完全不同的日历都可以相互比较,这很棒。 LocalTime
另一方面,它只是具有不同时区的时间表示,并且不必通过此接口(interface)方式与不同区域设置的时间表示进行比较。
关于java - 为什么 LocalDate 没有实现 Comparable<LocalDate>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53556656/