我正在使用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]
但是,由于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;
}
答案 0 :(得分:5)
你得到一个警告,因为Checkstyle认为修改方法参数是一种不好的做法。如果你不认为它是不好的做法,要么忽略它(或更改checkstyle配置),要么更改代码以处理参数的副本:
public boolean solve(int iIndex, int jIndex) {
int i = iIndex;
int j = jIndex;
// same code as before
}