为什么将一个变量赋值给自己会在Intellij思想中提示修正?

问题描述 投票:0回答:1

为什么这样提示你改正。

int x = 3;
x = x;

你需要把上面的代码改写成这样。

int a = 3;
int b = a;
a = b;

第二段代码即使与第一段代码的逻辑基本相同,只是更加复杂,也会被Intellij Idea所接受.上面的例子是真实业务逻辑代码的简化。没有理由在这里提供真实的代码,因为即使是上面的例子,Intellij也会提示您更正。这不是一个错误。代码编译后运行正常。自赋值不是发生在构造函数中,为什么第一段代码不能正常运行?

如果有帮助,我可以拿出更详细的代码。

    int i = 0;
    int b = 10;
    do {
        for (i = i; i < b; i++){
            System.out.println(i);
        }
        b=b+10;
    } while (//some condition);
    System.out.println("Final i: "+ i);

比方说,我需要打印i从0到9,然后,如果/some条件为真,打印下一个i,从10到19等迭代,Intellij提示修正i=i部分的逻辑是什么?

java variables assign
1个回答
1
投票

因为所有(半路出家的)IDE都会对此发出警告,原因是以下问题。

public class A {
    private int a;

    public A (int a) {
        // problem, because nothing is actually done.
        a = a;

        // what you actually want.
        this.a = a;
    }

    ....
}

字段 a 的名称与参数 a,因此指定 a = a 是一个 自派而不是打算分配给该字段的 this.a = a.

说句题外话:这不仅是构造函数的问题,只是一个很好的例子。

© www.soinside.com 2019 - 2024. All rights reserved.