【问题标题】:Keyword for the outer class from an anonymous inner class [duplicate]来自匿名内部类的外部类的关键字[重复]
【发布时间】:2010-09-08 14:09:35
【问题描述】:

在下面的sn-p中:

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(),或类似的东西,但似乎找不到任何东西。

【问题讨论】:

    标签: java anonymous-inner-class


    【解决方案1】:

    通常您使用OuterClassName.this 来引用外部类的封闭实例。

    在您的示例中,a.this.otherMethod()

    【讨论】:

    • 你能说出为什么a.otherMethod() 不起作用吗?
    • @T.Todua OuterClassName.otherMethod() 将引用静态方法,因此您需要OuterClassName.this 来获取外部类的实例。
    • 在某些情况下,OuterClassName.this 在内部类中可以为空吗?
    • @ApurvGupta 我不这么认为。如果您尝试从静态方法创建匿名内部类,则唯一的可能性是。但是如果你在这种情况下尝试使用“a.this”,你会得到一个编译器错误。
    【解决方案2】:
    OuterClassName.this.outerClassMethod();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多