什么是NPath复杂性以及如何避免它?

2022-09-03 04:37:41

在此行中:

public Map getAll(BusinessTargetPK pkBusinessTargetId) throws Exception

我收到此错误:

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

在这一行中:

public Map getAll( Long  RLE_ROLE_ID  ) throws Exception {

我收到此错误:

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

我完全不知道什么是NPath复杂性以及它意味着什么。

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


答案 1

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

很好地解释了它:

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

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

所以我的建议是:

  1. 将函数拆分为更小的函数
  2. 尽可能消除无用的 if/else 语句

答案 2

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

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


推荐