这个问题在这里已经有答案了:
optionant vs optional(3个答案)
intstream比普通流有什么优势(1个答案)
基本流与对象流以及发生的实际装箱(2个答案)
为什么在Java8中有多个可选版本(1个答案)
15小时前关门了。
我知道它的存在是为了避免双重 Package 的性能问题 Optional<Integer>
但是在这个例子中:
OptionalInt x = IntStream.range(1, 1000000)
.map(y -> y * 2)
.filter(y -> y > 10)
.findAny();
中间人是处理许多价值的人,即。 IntStream
, IntUnaryOperator
等等 OptionalInt
最后只创建一次。
它真的值得拥有吗 OptionalInt
就为了最后那一个返回对象?
2条答案
按热度按时间eyh26e7m1#
首先,请记住,在
filter
方法用法(或任何返回不同数量对象的方法,如reduce
). 不能保证值总是存在。这就是返回值可能在那里而不是null
这可能会导致错误。仅仅为最后的一个返回对象使用optionant真的值得吗?
是的,值得。
OptionalInt
是Optional<Integer>
返回一个基元int
相反(当然值必须存在)。我们可以说int
. 由于装箱只与原语相关,我猜引入这样的对象是为了方便和避免装箱操作开销。d7v8vwbk2#
如果找不到,你打算还什么?