This question already has answers here:
Java 8 - Difference between Optional.flatMap and Optional.map
                            
                                (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)Optionalmap()需要返回Function的映射器? extends U,因此允许它返回OptionalInt。因此,它接受OptionalInt::of。由于自动拆箱,您可以将Integer传递给OptionalInt.of()

2)OptionalflatMap()需要返回Function的映射器Optional<U>OptionalInt不是Optional,因此不能将OptionalInt :: of传递给它。

关于java - 关于Java 8 OptionalInt.of的参数的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60335121/

10-10 09:27