【发布时间】:2020-04-26 07:52:27
【问题描述】:
下面的代码我有多个 else if 条件。因此,当我使用声纳立方体运行代码时,它会说“重构此方法以将其认知复杂度从 31 降低到允许的 15。”有人可以帮我将认知复杂度从 31 降低到 15。
private final String method1(){
if(!StringUtils.isEmpty(stringvariable)){
if(stringvariable.equals("str1") || stringvariable.equals("str2") || stringvariable.equals("str3") ){
Stringvariable1 = "val1";
}
else if(stringvariable.equals("str4") || stringvariable.equals("str5") ){
Stringvariable1 = "val2";
}
else if(stringvariable.equals("str6") || stringvariable.equals("str7") || stringvariable.equals("str8")){
Stringvariable1 = "val3";
}
else if(stringvariable.equals("str9") || stringvariable.equals("str10") || stringvariable.equals("str11")){
Stringvariable1 = "val4";
}
else if(stringvariable.equals("str12") || stringvariable.equals("str13") || stringvariable.equals("str14")){
Stringvariable1 = "val5";
}
else if(stringvariable.equals("str15")){
Stringvariable1 = "val6";
}
else if(stringvariable.equals("str16") || stringvariable.equals("str17") || stringvariable.equals("str18") || stringvariable.equals("str19")){
Stringvariable1 = "val7";
}
else if(stringvariable.equals("str20") || stringvariable.equals("str21") ||stringvariable.equals("str22")){
Stringvariable1 = "val8";
}
else if(stringvariable.equals("str23") || stringvariable.equals("str24") || stringvariable.equals("str25") || stringvariable.equals("str26")){
Stringvariable1 = "val9";
}
else if(stringvariable.equals("str27") || stringvariable.equals("str28")){
Stringvariable1 = "val10";
}
else if(stringvariable.equals("str29") || stringvariable.equals("str30")){
Stringvariable1 = "val11";
}
else if(stringvariable.equals("str31")){
Stringvariable1 = "val12";
}
else if(stringvariable.equals("str32")){
Stringvariable1 = "val13";
}
else if(stringvariable.equals("str33") || stringvariable.equals("str34") || stringvariable.equals("str35") || stringvariable.equals("str36")){
Stringvariable1 = "val14";
}
else if(stringvariable.equals("str37")){
Stringvariable1 = "val15";
}
else if(StringUtils.isEmpty(stringvariable) ){
Stringvariable1 = "val16";
}
else {
Stringvariable1 = "val17";
}
}
else{
Stringvariable1 = "val18";
}
return Stringvariable1;
}
【问题讨论】:
-
尝试使用 Switch 语句
标签: java sonarqube-scan