最近在代码检查过程中遇到了一些问题,比如:
这段代码的目的是如果有一个字段等于空字符串,就执行if
中的逻辑,但是如果按照图中的写法在代码检查中会被提示“表达式不应该太复杂”
,因此需要进行调整,可以使用链式判空来解决此问题,如下:
List<String> params = Arrays.asList(wellId, platformCode, actType,
planStartDate, planEffectDate,
planEndDate, isMoveString, actPlanAlarm);
if (params.stream().anyMatch(str -> "".equals(str))) {
// 如果存在为空的字符串,则执行对应的逻辑
}
在上面这段代码中,使用stream流中的anyMatch
,anyMatch
是一个用于判断Stream中是否存在符合给定条件的元素的终端操作,他接收一个谓词作为参数,并返回一个布尔值表示是否存在任意一个元素满足该条件。
在上面代码中,谓词为str -> "".equals(str)
,只要有一个字段为空字符串,就执行if
中的逻辑。