PMD 检查java代码:方法和类的圈复杂度(CyclomaticComplexity )

https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_rules_java_design.html#cyclomaticcomplexity

  • 方法的复杂度直接影响维护成本和可读性。在一个方法中集中了太多的决策逻辑会导致难读、难修改。
  • 圈复杂度是通过统计方法的决策点的数量来评估方法的复杂度,方法的入口圈复杂度加1。所谓代码中的决策点就是在此处控制流调到了程序的其它地方。因此,它们包含控制流语句,例如if/while/for/case。
  • 一般来说,方法的圈复杂度在1-4之间意味着复杂度低,在5-7之间意味着复杂度适中,在8-10之间意味着复杂度高,大于等于11表示复杂度非常高了。
  • 对于类来说,当类中圈复杂度适中的方法的圈复杂度之和达到某一个数值(默认是80)也会报圈复杂度高,即便类中每个方法的圈复杂度都没有超过10。
    圈复杂度高的方法可以被拆解为几个小的方法,圈复杂度高的类可以被拆解为几个子部件。

借用PMD资料中的举例https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_rules_java_design.html#cyclomaticcomplexity

PMD 检查java代码:方法和类的圈复杂度(CyclomaticComplexity )_第1张图片

该规则可以通过属性classReportLevel、methodReportLevel调整圈复杂度报告的阈值:
PMD 检查java代码:方法和类的圈复杂度(CyclomaticComplexity )_第2张图片

你可能感兴趣的:(PMD,java)