访问静态最终实例变量进入静态方法错误
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 级别 x
和 this
。您需要 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);
}
我在工作时遇到了这种特殊行为,但我不确定这里的问题是什么。按照我的说法 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 级别 x
和 this
。您需要 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);
}