Java9为Optional添加了.or方法.现有的.orElseGet有何不同?
checkUserInMemory(userId).or(() -> checkUserInDB(userId));
解决方法
主要是两者的返回类型各不相同.
>对orElseGet的调用返回对象T本身.
>如果没有值且提供函数为null,则抛出NullPointerException
>用例:根据提供的函数确定性地获取值.
> Optional.or返回描述值的Optional,否则返回由供应函数生成的Optional
>如果提供函数为null或者提供函数产生null结果,则抛出NullPointerException.
>使用案例:根据提供的函数的结果链接一系列Optionals.样品 –
How do I concisely write a || b where a and b are Optional values?