java isnoneblank,java – 此方法的Cyclomatic Complexity大于授权

您需要分析重复的代码并将其重构为可重用的方法.

鉴于您的原始片段,

public boolean isVoNotNull() {

return null != this.cardNo && StringUtils.isNotBlank(this.cardNo)

&& null != this.otp && StringUtils.isNotBlank(this.otp)

&& null != this.password && StringUtils.isNotBlank(this.password)

&& null != this.userid && StringUtils.isNotBlank(this.userid)

&& null != this.type && StringUtils.isNotBlank(this.type)

&& null != this.walletMobileNo && StringUtils.isNotBlank(this.walletMobileNo);

}

我们可以识别以下重复部分:

null != this.xxx && StringUtils.isNotBlank(this.xxx)

鉴于StringUtils#isNotBlank()already检查为null,我们可以进一步简化它.

StringUtils.isNotBlank(this.xxx)

鉴于你需要多次调用它,最好将它重构为一个采用variable number of arguments的方法,该方法在循环中检查它们.

public static boolean isNoneBlank(String... strings) {

for (String string : strings) {

if (!StringUtils.isNotBlank(string)) {

return false;

}

}

return true;

}

或者,如果您已经使用Streams and Lambda支持Java 8:

public static boolean isNoneBlank(String... strings) {

return Arrays.stream(strings).allMatch(StringUtils::isNotBlank);

}

现在您可以使用它,如下所示:

public boolean isVoNotNull() {

return isNoneBlank(this.cardNo, this.otp, this.password, this.userid, this.type, this.walletMobileNo);

}

您可以通过删除不必要的内容来进一步减少样板.

public boolean isVoNotNull() {

return isNoneBlank(cardNo, otp, password, userid, type, walletMobileNo);

}

也就是说,正如msandiford所指出的那样,事实证明,Apache Commons Lang StringUtils从版本3.2 already开始就是这种方法.因此,如果您还没有,请考虑将Apache Commons Lang升级到至少3.2.

public boolean isVoNotNull() {

return StringUtils.isNoneBlank(cardNo, otp, password, userid, type, walletMobileNo);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值