Option的orElse()与orElseGet()区别
Optional
是Java8中引入的一个类,用来解决null
的问题,它的orElse()
与orElseGet()
方法都是用来处理null
的,当Optional
中的值为null
时,提供一个默认值。
orElse()
与orElseGet()
的区别在于,无论Optional
对象中的值是否为空,orElse()
函数都会执行;而由于orElseGet()
中的参数为一个Supplier
方法,该方法的特点是仅在必要的时候执行,因此只有在Optional
对象中的值为空时,orElseGet()
中的Supplier
方法才会执行。
因此,只有当默认值已经事先定义的情况下,才使用orElse()
,否则使用orElseGet()
更好。
编辑 (opens new window)
上次更新: 2024/01/03, 15:02:23