web-dev-qa-db-ja.com

NPathの複雑さ

この行の内容:

public Map getAll(BusinessTargetPK pkBusinessTargetId) throws Exception

このエラーが発生します:

NPathの複雑さは32,768です(最大許容値は200です)

そしてこの行で:

public Map getAll( Long  RLE_ROLE_ID  ) throws Exception {

このエラーが発生します:

GetAll()メソッドのNPathの複雑さは2048です。

NPath Complexityとは何か、そしてそれが何を意味するのか、私は完全に知りません。

誰かがこのタイプのエラーを回避する方法をアドバイスできますか?

8
Wolverine789

このリンク: https://modess.io/npath-complexity-cyclomatic-complexity-explained/

それを非常によく説明します:

メソッドのNPathの複雑さは、そのメソッドを通る非周期的な実行パスの数です。

これは、多くの(ネストされた)if/elseステートメントを含む長い関数を避ける必要があることを意味します。

だから私のアドバイスは次のようになります:

  1. 関数を小さな関数に分割する
  2. 可能な場合は、役に立たないif/elseステートメントを削除します
13
JoeDred

これは古いスレッドであり、Wolverine789はおそらく今までに答えを見つけましたが、Google検索結果でこのスレッドをまだ見つけている人にとっては、NiklasModessによるエラーの次の説明が役に立ちました。

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

3
seeking answers