在查看 Java 语言的 java.util 包文档时,我惊讶地发现
Optional<T>
和 OptionalInt
这两个类没有任何关系。这似乎很难相信,因为它表明它们是不相关的类。
- 为什么它们没有共同的接口、类或子类型等等,以展示它们之间的关系?(当你查看它们的用法时,它们是非常相似的类。)
- 此外,为什么需要一种额外的
OptionalInt
类?为什么不能只使用Optional<Integer>
?我认为这是由于 int 是一个原始数据类型,但是没有OptionalChar
类,因此那将不是一个一致的设计选择。
OptionalChar
呢? - MichaelOptional<Integer>
不足够。你能举个例子吗? - MichaelIntConsumer
和DoubleConsumer
也是一样,但没有CharConsumer
。请注意,在 Java 9 中,您应该(计划可能会更改)能够对原语进行通用,并且所有这些都将成为遗留问题。 - Sled