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