将静态最终实例变量访问为静态方法错误

时间:2015-02-25 05:04:56

标签: java static

我在工作时遇到了这种特殊行为,但我不确定这里的问题是什么。据我所知静态 keyWord有一些功能

1。属于阶级而非对象。

2。静态方法可以访问类的静态实例变量。

但是有些人可以表达特定的行为:

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

在编写此特定行时,我在Eclipse中打印语句“this.x”时出现 complile 时间错误,因为 “无法使用这在静态conetext“

有人可以解释我理解中缺少的东西吗?

2 个答案:

答案 0 :(得分:2)

您无法指定您希望班级xthis。你需要班级名称。像,

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

答案 1 :(得分:1)

this ”指的是当前对象而不是类。

应该是

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