This question already has answers here:
Java 8 - Difference between Optional.flatMap and Optional.map
(6个答案)
2个月前关闭。
1)
2)
为什么以下不能编译?
(6个答案)
2个月前关闭。
1)
OptionalInt::of
应该接受参数int,但是为什么以下代码可以编译?Integer boxed=2;
Optional<OptionalInt> optInt=Optional.ofNullable(boxed).map(OptionalInt::of);
Optional.ofNullable(boxed)
应该返回Optional<Integer>
,而不是int。2)
为什么以下不能编译?
Optional.ofNullable(boxed).flatMap(OptionalInt::of);
最佳答案
1)Optional
的map()
需要返回Function
的映射器? extends U
,因此允许它返回OptionalInt
。因此,它接受OptionalInt::of
。由于自动拆箱,您可以将Integer
传递给OptionalInt.of()
。
2)Optional
的flatMap()
需要返回Function
的映射器Optional<U>
。 OptionalInt
不是Optional
,因此不能将OptionalInt :: of传递给它。
关于java - 关于Java 8 OptionalInt.of的参数的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60335121/
10-10 09:27