使用引用时BlueJ中的Java checkstyle错误

1 java trackback checkstyle bluej

我正在使用BlueJ作为IDE在Java中进行算法.我使用trackback算法来解决问题,除了checkstyle之外,一切都很完美.checkstyle错误是:

Assignment of parameter i is not allowed [on line 336] 
Assignment of parameter j is not allowed [on line 337]
Run Code Online (Sandbox Code Playgroud)

但是,由于trackback要求变量作为参数传递,并且还要根据情况进行编辑,所以我对此无能为力.

有人知道如何解决这个问题吗?这是我的代码(错误行被评论):

 public boolean solve(int i, int j) {
        if (i == 9) {
            i = 0; // line 336
            if (++j == 9) { // line 337
                return true;
        }
        }
        ...
        for (int value = 1; value <= 9; ++value) {
            if (possible[value]) {  
                setCell(i,j,value);  
                if (solve(i+1,j)) {
                    return true;
                }
            }
        }
        game[i][j] = 0;
        return false;
}
Run Code Online (Sandbox Code Playgroud)

JB *_*zet 5

你得到一个警告,因为Checkstyle认为修改方法参数是一种不好的做法.如果您不认为它是不好的做法,请忽略它(或更改checkstyle配置),或者更改代码以处理参数的副本:

public boolean solve(int iIndex, int jIndex) {
    int i = iIndex;
    int j = jIndex;
    // same code as before
}
Run Code Online (Sandbox Code Playgroud)

  • 有关规则的说明,请参阅http://checkstyle.sourceforge.net/config_coding.html#ParameterAssignment.我个人并不关心为参数赋值.但它可以被认为是不好的做法,因为你无法分辨调试时参数的初始值是什么,例如.它还赋予参数两个职责:作为参数,并且是局部变量. (2认同)