- 使用
Optional.ofNullable(obj).orElse时,无论obj是否为null,都会执行orElse的方法; - 使用
Optional.ofNullable(obj).orElseGet时,只有obj是否为null,才会执行orElseGet里的方法; - 传入
Optonal值为非空,orElse或orElseGet都会执行,返回传入值; - 传入
Optional值为空,orElse会执行,orElseGet不会执行,返回执行方法体的结果. - 传入
Optonal值非空,返回本身; - 传入
Optional值为空,返回other; - 由于
orElseGet入参使用的是Supplier(类似懒加载),所以在只有在传入Optional值为空的时候,才会去执行; - 对于
orElseGet:返回值(如果存在),否则调用{other}并返回该调用的结果。 - 对于
orElse来说,无论传入Optional值是否为空,都会执行; - 对于
orElse:返回值(如果存在),否则返回{other} - 对于性能要求比较高的场景,建议使用orElseGet;
Optional做为空判断时,注意orElse和orElseGet使用区别
于 2022-04-01 10:33:34 首次发布
本文解析了Optional类中orElse和orElseGet方法的区别:orElse无论Optional值是否为null都会执行,而orElseGet仅在空时执行,适用于高性能场景。讲解了两种方法的执行逻辑,并举例说明其在不同情况下的行为。
6064

被折叠的 条评论
为什么被折叠?



