gpt4 book ai didi

java - 如何降低我的方法的循环复杂度

转载 作者:行者123 更新时间:2023-11-30 01:56:31 25 4
gpt4 key购买 nike

以下代码给出的循环复杂度为 35。

public void updateGUIInProgress(StatusLabelDTO statusLabelDTO) {
Display.getDefault().asyncExec(new Runnable() {

@Override
public void run() {
label1.setText(statusLabelDTO.getIterationStr());
label2.setMaximum(statusLabelDTO.getTotalCount());
label3.setSelection(statusLabelDTO.getExeIndex());
label4.setText(statusLabelDTO.getStepStr());
label5.setText(statusLabelDTO.getPassStr());
label6.setText(statusLabelDTO.getFailStr());
}
});
}

我尝试将所有设置行移动到一个方法中。然而它对我不起作用。如何降低复杂性?

最佳答案

如果不知道为您计算圈复杂度的工具,那真的很难。最后,您的代码没有做太多事情。

可以像这样重构它:

someDisplayYouAcquiredPreviously.asyncExec(new SpecificRunnable());

显然,这样做需要您之前存储该 Display 对象,并且还需要您使用不同的命名类而不是匿名内部类。

但真正的答案是:检查你的工具。维基百科告诉我们 cyclomatic complexity :

The cyclomatic complexity of a section of source code is the number of linearly independent paths within it. For instance, if the source code contained no control flow statements (conditionals or decision points), the complexity would be 1, since there would be only a single path through the code.

您的代码中只有一条路径,因此该值应该是 1,而不是 35。

换句话说:你的工具似乎计算了错误的数字,可能它不理解 java 语法。因此,真正的答案是退后一步,看看您正在使用的设置/工具。

是的,我发现用户 Hulk 很可能是正确的,您应该将工具升级到更新版本,因为这可能是错误 199在“源代码监视器”应用程序中。

提示:您知道需要退一步检查环境中所有其他工具的版本。在更新方面保守是一回事,但使用 7 年前的版本就不再“保守”了,这是严重的疏忽。

关于java - 如何降低我的方法的循环复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54303882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com