我有一个变量(测试变量(,根据变量的 isNull,我需要进行方法调用,如下所示
if (testvariable != null)
method(testvariable);
else
method();
简化可选代码的最佳方法是什么
假设您的method
函数返回一个值(不是void
(,您可以使用map
和orElseGet
函数,如下所示:
return Optional.ofNullable(testVariable)
.map(tv -> method(tv))
.orElseGet(() -> method());
map
函数将可选转换为包含返回值method
,但前提是可选包含值。如果testVariable
为 null,则结果将从传递给orElseGet
方法的函数中派生。
如果method
返回void
,则不要使用Optional
。Optional
最适合用于对值的存在与否进行建模。