我是Java可选对象的新手,但是我看到此代码是由另一个开发人员编写的,但我没有得到:
String t = null;
Optional.ofNullable("notnull")
.orElse(
Optional.ofNullable(t).orElseThrow(() -> new Exception("MyException"))
);
Run Code Online (Sandbox Code Playgroud)
为什么这段代码会引发异常?为什么甚至转到“ orElse”分支?
这是因为执行顺序有些奇怪吗?因此,在评估orElse分支之前未设置第一个可选的值吗?
自从我安装了新的SDK以来,我遇到了这个问题.当我尝试将同一个类链接到构建两次时,我已经读到过这种情况.
但这是一个特殊的事情:
发生错误时.但是,当我执行以下任一操作时:
我似乎陷入了一些无法解决的范式.也许有建立规则来规避这个?
任何帮助将不胜感激!