Java 如何从内部类访问带阴影的外部类变量?
这不是一个直截了当的问题。在我的例子中,外部类变量和内部类setter方法的参数名是相同的。比如:Java 如何从内部类访问带阴影的外部类变量?,java,scope,Java,Scope,这不是一个直截了当的问题。在我的例子中,外部类变量和内部类setter方法的参数名是相同的。比如: class Problem { String s; int p; class Inner { String testMethod() { return s = "Set from Inner"; } void setP(int p) { p=p; //it will
class Problem {
String s;
int p;
class Inner {
String testMethod() {
return s = "Set from Inner";
}
void setP(int p)
{
p=p; //it will do self assignment
}
}
}
现在我不能用this.p=p初始化外部类实例变量p,因为它指示内部类。同样,我不能做问题代码>它得到一个错误。
现在我如何分配外部p,保持内部类方法setP(int p)
的参数不变
同名p?您可以/应该这样做:
Problem.this.p
用于引用外部类,如
Problem.this.p = p;
用这个
class Problem {
String s;
int p;
class Inner {
String testMethod() {
return s = "Set from Inner";
}
void setP(int p)
{
Problem.this.p=p; //it will do assignment
}
}
}
是的,你的答案不应该被否决。我是提问者支持你。也请检查这个答案@Nandkumar,我刚刚看到,很好的解释:)
class Problem {
String s;
int p;
class Inner {
String testMethod() {
return s = "Set from Inner";
}
void setP(int p)
{
Problem.this.p=p; //it will do assignment to p of outer class
}
}
}