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

发布于 2024-11-08 18:39:08 字数 843 浏览 3 评论 0原文

我正在使用 BlueJ 作为 IDE 用 Ja​​va 编写算法。我使用 trackback 算法来解决问题,除了 checkstyle 之外,一切都运行良好。检查样式错误是:

Assignment of parameter i is not allowed [on line 336] 
Assignment of parameter j is not allowed [on line 337]

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

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

 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;
}

I'm doing an algorithm in Java using BlueJ as an IDE. I use trackback algorithm to solve the problem and everything works perfectly except for the checkstyle. The checkstyle errors are:

Assignment of parameter i is not allowed [on line 336] 
Assignment of parameter j is not allowed [on line 337]

However, as trackback requires the variables to be passed as the arguments and also be edited according to the situation, so I can't do anything about this.

Does anybody know how to fix this? This is my code (error lines are commented):

 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;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绅士风度i 2024-11-15 18:39:08

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

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

You get a warning because Checkstyle considers that modiying method arguments is a bad practice. Either ignore it (or change the checkstyle config) if you don't consider it as bad practice, or change the code to work on copies of the arguments:

public boolean solve(int iIndex, int jIndex) {
    int i = iIndex;
    int j = jIndex;
    // same code as before
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文