访问静态最终实例变量进入静态方法错误

accessing Static final instance variable into static method error

我在工作时遇到了这种特殊行为,但我不确定这里的问题是什么。按照我的说法 Static keyWord 有一些特点

1.属于class而不是object.

2。静态方法可以访问class.

的静态实例变量

但是有人可以解释一下具体的行为吗:

      public static final int x=12;
      public static  void go(final int x){
          System.out.println(this.x);
      }

在写这一行时,我在 Eclipse 中打印语句 "this.x" 时出现 complile 时间错误 as"can't use this in static conetext".

有人可以解释一下我的理解中缺少什么吗??

"this" 引用当前对象而不是 class.

应该是

public static final int x=12;
      public static  void go(final int x){
          System.out.println(ClassName.x);
      }

您不能指定 class 级别 xthis。您需要 class 名称。喜欢,

class Example {
  public static final int x=12;
  public static  void go(final int x){
    System.out.println(Example.x);
  }
}

您也可以为方法参数使用不同的变量名。

public static final int x=12;
public static void go(final int y){
  System.out.println(x);
}