Цикломатическая сложность модельного класса - PullRequest
0 голосов
/ 04 ноября 2019

Может ли кто-нибудь помочь мне понять, почему мой класс модели имеет цикломатическую сложность 89. Когда я запускаю PMD, он дает мне «Класс GetResponse» имеет общую цикломатическую сложность 89 (наивысший 1) ».

Пожалуйста, найдите фрагмент кода как:

public class GetResponse  {
private String ewbNo;
private String ewayBillDate;
private String genMode;
private String userGstin;
private String supplyType;
private String subSupplyType;
private String docType;
private String docNo;
private String docDate;
private String fromGstin;
private String fromTrdName;
private String fromAddr1;
private String fromAddr2;
private String fromPlace;
private String fromPincode;
private String fromStateCode;
private String toGstin;
private String toTrdName;
private String toAddr1;
private String toAddr2;
private String toPlace;
private String toPincode;
private String toStateCode;
private Float totalValue;
private Float totInvValue;
private Float cgstValue;
private Float sgstValue;
private Float igstValue;
private Float cessValue;
private String transporterId;
private String transporterName;
private String transDocNo;
private String transMode;
private String transDocDate;
private String status;
private Integer actualDist;
private Integer noValidDays;
private String validUpto;
private Integer extendedTimes;
private String rejectStatus;
private String vehicleType;
private String actFromStateCode;
private String actToStateCode;
private Object itemList;
private Object VehiclListDetails;

//getters and setters
}

1 Ответ

1 голос
/ 04 ноября 2019

Согласно странице Википедии :

[цикломатическая] сложность M [] определяется как

M = E − N + 2P,

, где

E = the number of edges of the graph.
N = the number of nodes of the graph.
P = the number of connected components.

По моим подсчетам, в вашем классе 44 поля плюс (я предполагаю) геттеры и сеттеры для каждого поля.

Типичный геттер выглядит так:

  public T getX() { return x; }

иэто имеет цикломатическую сложность 1.

Типичный установщик выглядит следующим образом:

  public void setX(T x) { this.x = x; }

, и это также имеет цикломатическую сложность 1.

Наконец, если мы рассмотрим объявления полейкак последовательность утверждений, то есть граф с 44 узлами и 43 ребрами (и без связанных компонентов ), дающий сложность 1.

Таким образом, совокупная цикломатическая сложность всегокласс 44 x 1 + 44 x 1 + 1 == 89.

...