如果您查看下面的代码,您会看到我在方法 M() 中声明了 int x = 0。然后我在所述方法中声明一个匿名类并声明 int z = x。我的问题是我虽然这是不允许的,因为 x 是在匿名类存在的封装方法中定义的,而不是常量。也许我误解了一些东西。有人可以帮助清除我的困惑吗?
public class SomeClass {
public void someMethod(Super pObj) {}
}
public class Super {
public Super() {}
public void aMethod() {}
}
public class SubClass extends Super {
public void M() {
SomeClass someObject = new SomeClass();
int x = 0;
someObject.someMethod(new Super() {
int z = x;
@Override public void aMethod() {}
});
}
}
慕码人8056858
慕森卡
匿名内部类修改外部类变量
方法内部类访问外部重名变量
内部类变量和外部类变量访问时,静态和非静态为什么访问外部静态变量不用加this
java中方法内部内如何访问同名外部类变量
相关分类