当我在我的 Java 代码上运行 PMD 时,它显示的错误消息之一是 “类 STWeb 具有 20 的圈复杂度”。 通常我的java类是这样的
public class STWeb implements STWebService {
public String getData(RequestData request)
{
validate(request);
}
public boolean validate(Data[] formdata)
{
if(formdata.length==1)
//do this
else if(formdata.length==3)
//do this
else if(formdata.length==4)
//do this
else if(formdata.length>4)
//do this
else if(formdata.length==2)
{
if(formdata[0].getName.equals("OIY"))
{
}
/ And many more if else here
}
}
}
如您所见,根据我的业务需求,我需要编写类(class)代码 有很多 if 和 if else 所以环复杂度增加的原因,请告诉我 根据这个标准,什么是可行的方法??
最佳答案
圈复杂度测量不应用于质量控制,而应作为错误代码的指示器/警告。您应该更多地关注其背后的代码,而不是 CC 本身的值(value)。
虽然您可以通过重构将 validate
方法拆分为更小的方法来降低它的复杂性,但作为一个整体的类仍将具有相同的 CC。
只要代码可读并且对下一个必须查看它的人来说有意义,那么拥有更高的 CC 就不会那么重要。
关于Java 代码 PMD 提示圈复杂度,共 20,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8089125/