首页 >Java >java教程 >Java中如何从内部类访问外部类实例?

Java中如何从内部类访问外部类实例?

DDD
DDD原创
2025-01-02 16:55:41719浏览

How Can I Access the Outer Class Instance from an Inner Class in Java?

从内部类检索外部类实例

考虑以下代码,其中的目标是从内部类访问外部类对象内部类实例:

public class OuterClass {

    public class InnerClass {
        private String name = "Peakit";
    }

    public static void main(String[] args) {
        OuterClass outer = new OuterClass();
        InnerClass inner = outer.new InnerClass();
        // Retrieve the outer class instance...
        OuterClass anotherOuter = ?? ;
    }
}

访问外部类实例在内部类中

在内部类中,您可以使用 OuterClass.this 表达式来引用封闭实例。这种技术称为“Qualified This”,允许您从内部类内部访问外部类的成员。

public OuterClass getOuter() {
    return OuterClass.this;
}

在不修改内部类的情况下访问外部类实例

如果您没有能力修改内部类,则可以通过对封闭类的包级访问来访问外部类实例实例字段,用 this$0 表示。

OuterClass outerRef = inner.this;

附加说明

  • Java 可以识别名称 this$0,尽管在Java 语言规范。
  • 通常认为避免依赖包级访问来访问封闭实例。
  • 如果您可以控制其修改,则向内部类添加方法以显式返回外部类实例是一个更强大的解决方案。

以上是Java中如何从内部类访问外部类实例?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn