如何在 Java 8 中完成?
if (var1 != null && var2!=null) {
callMethod(var1,var2);
}
Run Code Online (Sandbox Code Playgroud)
我在想这样的事情,但有两个变量:
Optional.ofNullable(var1).ifPresent(var1 -> callMethod(var1));
Run Code Online (Sandbox Code Playgroud)
您的示例清晰易读,寻找替代方案毫无意义。正如您所提到的,Optional 只能包装一个值。
如果要替换多个 nonNull 检查,可以创建一个结构
Stream.of(var1, var2, var3, ...).allMatch(Objects::nonNull)
Run Code Online (Sandbox Code Playgroud)
这可以包装成一个辅助方法:
boolean nonNull(Object arg){
return arg!=null;
}
boolean nonNull(Object arg1, Object arg2){
return arg1!=null && arg2 !=null;
}
...
boolean nonNull(Object... args){
return Arrays.stream(args).allMatch(Objects::nonNull);
}
Run Code Online (Sandbox Code Playgroud)
但是对于少于 3 个参数,这没有意义,而且性能更差。
保持代码可读性,而不是花哨。短是好的,短更好。
归档时间: |
|
查看次数: |
3164 次 |
最近记录: |