java – OptionalInt vs可选

当滚动了 java.util软件包的文档时,我惊讶地发现可选的< T>和OptionalInt彼此没有关系.这似乎很难相信,因为它表明它们是无关的课程.

>为什么他们没有一个共同的界面,类,子类型或东西来揭示他们的关系? (当你看他们的用途时,他们是非常相似的类.)
>另外,为什么需要一个额外的OptionalInt类?为什么不能使用Optional< Integer>?我认为这是因为int是原始的,但是没有OptionalChar,所以这将是一个不一致的设计选择.

解决方法

Java 8引入了很多专用于图元的功能.原因很可能是拳击原语可以创造大量的废物“盒子”.

例如这个

OptionalInt optionalFirst = IntStream
    .range(0,100)
    .filter(i -> i % 23 > 7)
    .findFirst();

这里,可选的<整数>结果将不一致.而像ifPresent(IntConsumer消费者)这样的方法也允许留下IntStream世界.可选<整数>会迫使你转换(如果你愿意,你可以轻松地做)

不需要特别支持char或short或byte,因为它们都可以表示为int.缺少一个是布尔值,但是在它们的流中没有太多的可用性,因为只有2个值.

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...