Java:在嵌套静态类中引用外部类
这个问题在这里已经有了答案:
  你显然需要一个OuterClass类型的对象: 
public void someMethod() {
    OuterClass oc = new OuterClass();
    OtherClass.otherMethod(oc);
}
如果你的内部类不是静态的,那么你可以这样做:
//remove static here
private class InnerClass { 
    public void someMethod() {
        OtherClass.otherMethod(OuterClass.this);
    }
}
你应该知道嵌套类的不同之处 - 静态的和非静态的 。 静态嵌套类就像其他类一样,只是在其他类中定义的类(通常是因为封装原则)。 内部静态类实例不知道外部类实例。
  嵌套的内部类(非静态)要求内部类的对象存在于外部类的实例中。  这就是为什么你可以通过OuterClass.this访问它。 
最简单的方法是在构造函数或方法中传递outerClass的实例,因为innerClass不知道这个类。
喜欢这个:
public void someMethod(OuterClass outerClass) {
   OtherClass.otherMethod(outerClass.myMethod());
}
                        链接地址: http://www.djcxy.com/p/92013.html
                        
                        
                    