NPath复杂性

时间:2014-07-10 07:13:49

标签: java sonarqube pmd

在这一行:

public Map getAll(BusinessTargetPK pkBusinessTargetId) throws Exception

我收到此错误:

  

NPath复杂度为32,768(最大允许值为200)

在这一行:

public Map getAll( Long  RLE_ROLE_ID  ) throws Exception {

我收到此错误:

  

方法getAll()的NPath复杂度为2048

我完全不知道什么是 NPath复杂性及其含义。

有人可以提供如何避免此类错误的建议吗?

2 个答案:

答案 0 :(得分:12)

此链接:https://modess.io/npath-complexity-cyclomatic-complexity-explained/

解释得非常好:

  

方法的NPath复杂性是通过该方法的非循环执行路径的数量。

这意味着你应该避免使用很多(嵌套的)if / else语句的长函数。

所以我的建议是:

  1. 将您的功能拆分为较小的功能
  2. 尽可能消除无用的if / else语句

答案 1 :(得分:3)

这是一个老线程,Wolverine789可能已经找到了答案,但对于那些仍在Google搜索结果中找到此帖子的人,我发现Niklas Modess对错误的以下描述很有帮助:

https://modess.io/npath-complexity-cyclomatic-complexity-explained/