private void addSth(List<Integer> myStatus, List<String> myId, String taskOwner, StringBuilder queryStatement, List<Object> args) {
if (null != myStatus&& myStatus.size >0) {
queryStatement.append("and (");
for(int i = 1; i <= status.size(); i++) {
int status = myStatus.get(i-1);
switch (status) {
case 1:
StringBuilder potSth = new StringBuilder();
if (null != myId && myId.size() > 0) {
pothSth.append("(");
for (int j=1; j <= myId.size(); j++)
pothSth.append(" ? ");
if (j < myId.size())
pothSth.append(", ")
pothSth.append(")");
queryStatement.append("sth");
queryStatement.append(pothSth);
queryStatement.append(")\n");
args.add(1);
for (String pOwner : ownerId) {
args.add(pOwner);
break;
case 2:
case 3:
queryStatement.append("or ");
args.add(status);
args.add(taskOwner);
if (i < myStatus.size ) {
queryStatement.append("or ");
Sonarlint基于三个因素测量认知复杂性:
资料来源:《认知复杂性白皮书》第4页
我在重构这部分代码时遇到了问题。如何降低该代码的认知复杂性
如何降低给定代码段的复杂性?我在Sonarqube中得到了这个错误-->重构这个方法,将其认知复杂度从21降低到允许的15。
我得到声纳警告来降低它的复杂性。我如何重构下面的代码,将其认知复杂度从18降低到允许的15?
我有一个方法,把罗马数字转换为公共十进制。我在这里用了一个循环和很多“if”条件。我的IDE中的SonarLint告诉我,这种方法的认知复杂度为33,而允许的复杂度为15。我怎样才能减少这个?我不介意如何解决这个问题。等待你的赔偿!
对于下面的JavaScript函数,我试图找出如何降低认知复杂性。