4

我有一些基本上看起来像这样的代码:

public MyObject getData(boolean someFlag) {

    String select1 = "SELECT * FROM myTable WHERE someInteger = ?";
    SqlHostvariablen hostvars = new SqlHostvara();
    hostvars.addInteger(myField.getSomeInteger);
    String[][] selarray = SqlHelper.doSelectAsMatrix(select1, hostvars);
    if (selarray.length == 0) {
        throw new IllegalArgumentException("Nothing found");
    }
    MyObject foo = new MyObject();
    int i = 0;
    foo.setSomething1(selarray[0][i++]);
    foo.setSomething2(selarray[0][i++]);
    foo.setSomething3(selarray[0][i++]);
    foo.setSomething4(selarray[0][i++]);
    foo.setSomething5(selarray[0][i++]);
    foo.setSomething6(selarray[0][i++]);
    foo.setSomething7(selarray[0][i++]);
    foo.setSomething8(transformSomething8(selarray[0][i++]));
    foo.setSomething9(selarray[0][i++]);
    foo.setSomething10(selarray[0][i++]);
    String someValue1 = selarray[0][i++];
    String someValue2 = selarray[0][i++];
    foo.setSomething11(selarray[0][i++]);

    doSomethingWithFoo(foo, someFlag, someValue1, someValue2);
    doSomethingElseWithFoo(foo);

    return foo;
}

标识符和 SQL 语句是匿名的,但我的方法看起来是一样的。

现在 Checkstyle 声称如果这种方法是 12 的圈复杂性。我一直以为我知道 CC 是什么,据我所知,我会说这种方法 CC 是 2。有一个方法if通过代码和控制流创建了一条新路径因此,图有 2 个路径/出口点。我看不出还有什么地方应该通过代码。

我是完全遗漏了什么还是 Checkstyle 错了?

4

1 回答 1

2

原来这是一个 Checkstyle 错误。虽然甚至没有解决问题,但在系统重新启动后,警告就消失了。Eclipse 重新启动可能就足够了,无法确定。

于 2013-08-09T13:53:52.673 回答