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