Java 在静态方法中使用this.var时出错,如果使用任何其他var名称,则错误消失

Java 在静态方法中使用this.var时出错,如果使用任何其他var名称,则错误消失,java,methods,static,this,Java,Methods,Static,This,我遇到了一个错误,我真的很困惑。 我有以下代码(非常简单,只是为了练习,想法是每个新对象都有ID,我希望能够随时编辑类中的当前ID): 问题在于类客户机中的方法,它以以下形式工作得很好。但以前有: static int setId(int id) { this.id = id; return id; } 编译器抛出错误:无法从指向this.id=id的静态上下文引用非静态变量; 若我将参数名称更改为不同于id,这样我就不必使用this.id,那个

我遇到了一个错误,我真的很困惑。 我有以下代码(非常简单,只是为了练习,想法是每个新对象都有ID,我希望能够随时编辑类中的当前ID):

问题在于类客户机中的方法,它以以下形式工作得很好。但以前有:

    static int setId(int id) {
        this.id = id;
        return id;
    }
编译器抛出错误:无法从指向this.id=id的静态上下文引用非静态变量;
若我将参数名称更改为不同于id,这样我就不必使用this.id,那个么错误就消失了。我完全糊涂了。

我们使用
这个
来指代当前对象,它本身就是类对象。在您的情况下,
id
不是类变量,而是静态变量。因此,您不能使用类对象引用
this
访问静态变量

    static int setId(int id) {
        this.id = id;
        return id;
    }