我对Java 8 Optionals有疑问.
以下代码给出了编译错误:
Integer number = Optional.ofNullable(new Integer(10));
Run Code Online (Sandbox Code Playgroud)
但是,当我们做以下它不,我不明白这是怎么工作:
Integer number = Optional.ofNullable(new Integer(10)).orElse(10);
Run Code Online (Sandbox Code Playgroud)
如果我们查看文档Optional.ofNullable(),它会返回一个类型的对象static <T> Optional<T> ofNullable(T value),表示它是内部类型转换,但文档说它的返回类型是Optional.
我得到的.orElse方法返回类型T,如果它进入orElse条件,它将工作正常,即如果传入的对象是null,但如果它不是null它是如何对它进行类型转换?