java - 为什么 LocalDate 没有实现 Comparable<LocalDate>?

标签 java scala implicit-conversion comparable localdate

初始问题:

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/

相关文章:

java - Avro 迭代 GenericRecord

scala - 在 ScalaTest + Mockito 中使用 Slick 模拟数据库并测试更新

c++ - 按值调用时的隐式转换和多态性

c++ - 将数字隐式转换为整型常量

java - 在泛型类的静态类中使用泛型类型

java - RequestParam.defaultValue 值

java - setRetainInstance() 方法是否保留 ArrayAdapter 数据?

scala - 奇怪的模式匹配语法

Scala Typeclass 具有多个参数错误

c++ - 了解复制初始化和隐式转换