7

这不是直截了当的问题。在我的例子中,外部类变量和内部类 setter 方法的参数名称是相同的。像:

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


}

现在我无法初始化外部类实例变量 p ,this.p=p因为它表示内部类。我再一次做不到Problem.p=p;它会出错。现在如何分配外部 p,保持内部 Class 方法setP(int p)的参数同名 p ?

4

4 回答 4

10

这是您可以/应该这样做的方式:

Problem.this.p
于 2012-09-10T06:28:42.747 回答
1

用于将 p 引用到外部类,例如

Problem.this.p = p;
于 2012-09-10T06:29:48.723 回答
1

用这个

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
    }
  }
}
于 2012-09-10T06:30:04.177 回答
0
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
    }
}
}
于 2012-09-10T06:30:40.140 回答