gpt4 book ai didi

java - 为什么 Temporal 不在 Java 8 jsr310 中扩展 Comparable

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:54:11 26 4
gpt4 key购买 nike

java.time.temporal.Temporal 的文档包含以下说明:

Implementation Requirements: [...] All implementations must be Comparable.

为什么 Temporal 不只是扩展 Comparable?

背景:我想使用可比较的时间(而不是像 LocalDateTime 等子类型)并且不得不求助于一种有点难以辨认的类型 <T extends Temporal & Comparable<T>>这也搞乱了 NetBeans 的自动完成功能。

编辑:我想实现一个时间间隔。 contains(Interval i)、contains(Temporal t)、overlaps(...)、adjoins(...) 等的明显实现使用 Comparable::compareTo(Comparable c) 来比较起点和终点,但是对于互操作性(toDuration(),解析(CharSequence cs))我需要例如Duration::between(Temporal s, Temporal e) 或 SubtypeOfTemporal::parse(CharSequence cs)(产生时间)。

最佳答案

如果它实现了Comparable<Temporal> ,每个子类实例都必须与任何其他子类实例进行比较。例如,将 Instant 与 LocalDate 进行比较是没有意义的。

鉴于契约(Contract)要求它们具有可比性,您可以使用 TComparable<T>并安全地忽略编译器警告。

关于java - 为什么 Temporal 不在 Java 8 jsr310 中扩展 Comparable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23870953/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com