关于 Java 8 OptionalInt.of 参数的问题
Problem about argument of Java 8 OptionalInt.of
1)
OptionalInt::of
应该接受参数int,但是为什么下面的可以编译?
Integer boxed=2;
Optional<OptionalInt> optInt=Optional.ofNullable(boxed).map(OptionalInt::of);
Optional.ofNullable(boxed)
应该 return Optional<Integer>
,而不是 int.
2)
为什么以下不能编译?
Optional.ofNullable(boxed).flatMap(OptionalInt::of);
1) Optional
的 map()
需要映射器 Function
,return 是 ? extends U
,因此允许 return一个 OptionalInt
。因此它接受 OptionalInt::of
。由于自动拆箱,您可以将 Integer
传递给 OptionalInt.of()
。
2) Optional
的 flatMap()
需要映射器 Function
,return 是 Optional<U>
。 OptionalInt
不是 Optional
,因此您不能将 OptionalInt::of 传递给它。
1)
OptionalInt::of
应该接受参数int,但是为什么下面的可以编译?
Integer boxed=2;
Optional<OptionalInt> optInt=Optional.ofNullable(boxed).map(OptionalInt::of);
Optional.ofNullable(boxed)
应该 return Optional<Integer>
,而不是 int.
2) 为什么以下不能编译?
Optional.ofNullable(boxed).flatMap(OptionalInt::of);
1) Optional
的 map()
需要映射器 Function
,return 是 ? extends U
,因此允许 return一个 OptionalInt
。因此它接受 OptionalInt::of
。由于自动拆箱,您可以将 Integer
传递给 OptionalInt.of()
。
2) Optional
的 flatMap()
需要映射器 Function
,return 是 Optional<U>
。 OptionalInt
不是 Optional
,因此您不能将 OptionalInt::of 传递给它。