Java 匿名内部类中外部类的关键字
在以下代码段中:Java 匿名内部类中外部类的关键字,java,anonymous-inner-class,Java,Anonymous Inner Class,在以下代码段中: public class a { public void otherMethod(){} public void doStuff(String str, InnerClass b){} public void method(a){ doStuff("asd", new InnerClass(){ public void innerMethod(){
public class a {
public void otherMethod(){}
public void doStuff(String str, InnerClass b){}
public void method(a){
doStuff("asd",
new InnerClass(){
public void innerMethod(){
otherMethod();
}
}
);
}
}
是否有从内部类引用外部类的关键字?基本上我想做的是
outer.otherMethod()
,或者类似的东西,但似乎找不到任何东西。通常使用OuterClassName。这
引用外部类的封闭实例
在您的示例中是
a.this.otherMethod()
您能告诉我为什么a.otherMethod()
不起作用吗?@T.Toduaoutercassname.otherMethod()
会引用一个静态方法,所以您需要outercassname.this
来获取外部类的实例。outercassname.this在内部类中可以为null,在某些情况下?@ApurvGupta我不这么认为。唯一的可能性是,若您试图从静态方法创建一个匿名内部类。但是如果您在这种情况下尝试使用“a.this”,您将得到一个编译器错误。
OuterClassName.this.outerClassMethod();