Sonar Lint规则"方法不应太复杂" (squid:MethodCyclomaticComplexity)有一个在程序块中使用多个return语句的例子。 (关于循环复杂度计算规则,请参阅https://groups.google.com/forum/#!topic/sonarqube/BtvGoF6Tw7E)
返回会缩短分支中的代码,并导致代码块变小。例如,
int findBranchNumber(String input) { if ("branch1".equals(input)) { return 1; } if ("branch2".equals(input)) { return 2; } // .... return -1; }
替代方案将使用方法变量(在本例中)或更大的块。阅读代码的人必须在他/她意识到前3行与" branch1"相关之前阅读整个方法。
请告知......
答案 0 :(得分:0)
我个人照你的例子展示。只有在分配资源时才要小心(例如文件打开,内存分配等),并且需要在从函数返回时释放它。在这种情况下,可以使用第一个答案https://stackoverflow.com/a/245761
中描述的goto line hire技巧