标签:Case 38 return String get most builderAppendStr toString public
【问题】Switch-Case过长的sonar问题Reduce the number of switch cases from 38 to at most 30.
1 switch (m.get("操作").toString()) { 2 case "启动应用": 3 builder.append(" BOperate.open();\r\n"); 4 break; 5 case "点击": 6 builder.append(" BOperate.click(\"" + replaceQuotation(m.get("Xpath").toString().trim()) + "\",true);\r\n"); 7 break; 8 case "输入": 9 builder.append(" BOperate.type(\"" + replaceQuotation(m.get("Xpath").toString().trim()) + "\"," + paramStr(m.get("参数1")) + ");\r\n"); 10 break; 11 case "获取文本": 12 builder.append(" " + valStr(paramStr(m.get("参数1"))) + " = BOperate.getText(\"" + replaceQuotation(m.get("Xpath").toString().trim()) + "\",true);\r\n"); 13 break;
【解决】
引用处:
1 //sonar问题:Reduce the number of switch cases from 38 to at most 30. 2 // 解决方法:操作的关键字存到枚举类。遍历枚举类,对应的枚举类方法做操作处理 3 String operationStr = m.get("操作").toString(); 4 String builderAppendStr = Operation.NULL.getInstance(operationStr).builderAppendStr(); 5 builder.append(builderAppendStr);
添加的枚举类(做后续扩展):其中的变量在原代码引用处保存到静态变量,在枚举类调用
1 public enum Operation { 2 NULL("") { 3 @Override 4 public String builderAppendStr() { 5 return null; 6 } 7 }, 8 OPEN("启动应用") { 9 @Override 10 public String builderAppendStr() { 11 return " BOperate.open();\r\n"; 12 } 13 }, 14 CLICK("点击") { 15 @Override 16 public String builderAppendStr() { 17 return " BOperate.click(\"" + replaceQuotation(sTCConvertMap.get("Xpath").toString().trim()) + "\",true);\r\n"; 18 } 19 }, 20 TYPE("输入") { 21 @Override 22 public String builderAppendStr() { 23 return " BOperate.type(\"" + replaceQuotation(sTCConvertMap.get("Xpath").toString().trim()) + "\"," + paramStr(sTCConvertMap.get("参数1")) + ");\r\n"; 24 } 25 }, 26 GET_TEXT("获取文本") { 27 @Override 28 public String builderAppendStr() { 29 return " " + valStr(paramStr(sTCConvertMap.get("参数1"))) + " = BOperate.getText(\"" + replaceQuotation(sTCConvertMap.get("Xpath").toString().trim()) + "\",true);\r\n"; 30 } 31 } 32 33 ; 34 35 36 Operation(String operationName) { 37 this.operationName = operationName; 38 } 39 40 private String operationName; 41 42 public String getOperationName() { 43 return operationName; 44 } 45 46 public Operation getInstance(String operationName) { 47 for (Operation operation : Operation.values()) { 48 if (operationName.equals(operation.getOperationName())) { 49 return operation; 50 } 51 } 52 return Operation.NULL; 53 } 54 55 public abstract String builderAppendStr(); 56 }
标签:Case,38,return,String,get,most,builderAppendStr,toString,public 来源: https://www.cnblogs.com/hsqzggg/p/10484147.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。